2016-05-26 8 views
0

私はタイプAのイベントのシーケンスを持っています。 Aにはデータオブジェクトの列挙が含まれています。 シーケンスAをCにマップしてフラットシーケンスB. どうすればいいですか?コレクションを含むオブジェクトのシーケンスをフラットシーケンスに変換する

public class Sandbox 
{ 
    public class A 
    { 
     public IEnumerable<B> Collection { get; set; } 
    } 

    public class B 
    { 

    } 

    private readonly IObservable<A> _sequence; 

    public Sandbox(IObservable<A> sequence) 
    { 
     _sequence = sequence; 
    } 

    public IObservable<B> C 
    { 
     get { return _sequence.Select(o => /* ... */); } 
    } 
} 

答えて

2

あなたはObservable.SelectManythis overloadを探しているではありません。これは、IEnumerable<T>を返す投影関数を使用します。

観察可能な配列の各要素を観察可能な配列に投影し、得られた観察可能な配列を1つの観察可能な配列に平坦化する。

public IObservable<B> C 
{ 
    get { return _sequence.SelectMany(o => o.Collection); } 
} 
0

あなたはSelectManyをしたいですが、可算SelectMany Observable.SelectMany

public IObservable<B> C 
{ 
    get { return _sequence.SelectMany(o => o.Collection); } 
} 
関連する問題