2009-08-03 64 views
14

我有一个具有IEnumerable属性的类(ClassA)。然后我有另一个类(ClassB)具有相同的属性。他们共享一个接口(InterfaceA)。 ClassB基本上是多个ClassA的容器类。如何为ClassB实现该属性。如何将多个IEnumerable列表结合在一起

interface InterfaceA 
{ 
    IEnumerable<int> MyInts 
    { 
     get; 
    } 
} 

class ClassA : InterfaceA 
{ 
    public IEnumerable<int> MyInts 
    { 
     get; 
     private set; 
    } 
} 

class ClassB : InterfaceA 
{ 
    ClassA[] classAs = new ClassA[10]; 
    public IEnumerable<int> MyInts 
    { 
     get 
     { 
      //What goes here ? 
      classAs.SelectMany(classA => classA.MyInts); 
     } 

    } 
} 

我试过使用LINQ select语句,但这不起作用。

编辑: 看起来我看起来不够硬。这个问题的答案就在这里。 How do I Aggregate multiple IEnumerables of T

编辑2: 包括适用于我的示例代码,以防其他人需要它。

回答

20

只需添加我的答案,所以这不会没有答案。

classAs.SelectMany(classA => classA.MyInts);

this question找到它。

3
 public IEnumerable<int> MyInts 
     { 
      get 
      { 
       foreach (ClassA c in classAs) 
       { 
        foreach (int i in c.MyInts) 
        { 
         yield return i; 
        } 
       } 
      } 

     } 
相关问题