2016-05-26 23 views
0

Ich habe eine Sequenz von Ereignissen des Typs A. A enthält eine Aufzählung von Datenobjekten B. Ich möchte Sequenz A in C zuordnen, so dass es eine flache Sequenz ist von B. Wie kann ich das tun?Reihenfolge der Objekte mit Auflistung in eine flache Reihenfolge ändern

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 => /* ... */); } 
    } 
} 

Antwort

2

Sie suchen this overload von Observable.SelectMany. Dies nimmt eine Projektionsfunktion, die eine IEnumerable<T> zurückgibt.

Projiziert jedes Element einer beobachtbaren Sequenz zu einer beobachtbaren Sequenz und flacht die resultierenden beobachtbaren Sequenzen in eine beobachtbare Sequenz ab.

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

Sie Select wollen aber nicht die Enumerable Select die Observable.SelectMany

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