我想了解下面的例子,它結合了window
和SelectMany
。據我所知Window
創建一個IObservable
流(IObservable<IObservable<T>>
)只要Observable
開始發送項目。該流與SelectMany
變平以獲得<IObservable<T>
。在Window和SelectMany中直觀的解釋
在這種video tutorial使用簡單IObservable
,新的流創建SelectMany
(讓說「線程」)時,其中一個功能是f
applyied。
問題:
- 能不能請你,投一些光,數據在訂閱如何到達的,哪些是按照視頻教程的marble diagram?
- 什麼是適用於扁平化流的功能?
- 最後,有可能提供一個更復雜的示例,其中
SelectMany
應用了一個簡單的函數,如Range
以及結果如何在大理石圖中進行描述?
謝謝。
var source = Observable.Interval(TimeSpan.FromMilliseconds(100))// start a counter from zero and last 100 milliseconds
.Take(5) // take only the first 5 items
.Window(2)
.SelectMany(c => c);
source.Subscribe(
value => Console.WriteLine(value.ToString()),
error => Console.WriteLine(error.Message),
() => Console.WriteLine("Completed")
);
Console.WriteLine("Press any key to exit");
Console.ReadKey();
「究竟是什麼時應用的功能趨於平緩流?「 - 呃,'SelectMany'。但堆棧溢出帖子應該真的有一個特定的問題......目前這篇文章太寬泛,不清楚哪一部分你不明白。您是否瞭解「常規」LINQ中的「SelectMany」?你應該可以在這裏應用這些知識 - 如果你不知道,我建議你應該從哪裏開始。 –