id:neueccさんのBlogに書いてあった、値のペアを作る方法。Scanの存在と挙動は知ってたけどこういう風に使えるか!っていうのは思いつかなかった。こういうノウハウ少しずつためていかないとだな〜。備忘のため自分のBlogにもメモメモ。イディオムが今一番つまってるのってRxのフォーラムなのかなぁ。Rxx(Extensions for Reactive Extensions)のソースを読むのもありかな?
var array = new[] {0,1,2,3,4,5,6,7,8,9}; array.ToObservable() .Scan(new { OldValue = 0, NewValue = 0 }, (x, y) => new { OldValue = x.NewValue, NewValue = y }) .Skip(1) .Subscribe(Console.WriteLine);