2009-08-03 15 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; 
        } 
       } 
      } 

     }