2012年05月03日

Interactive Extensions(Ix) - Shareメソッド

   このエントリーをはてなブックマークに追加 Clip to Evernote
EnumerableEx.Share拡張メソッドは、
名前からすれば、列挙を共有するメソッドということになるわけですが、
なんて説明したら良いのか言葉でうまく言い表せません。

Shareメソッドで作成されたシーケンスは、ある場所にバッファリングされ、
列挙する際は、そのバッファーが利用されると言ったら良いのでしょうか。

まずは、そのコードと動きを見た方が分かりやすいです。


結果は、


です。


ではありません。

これを利用すれば、こんなコードが書けます。


結果は、


と出力されます。
これをShareを使わないで書くとすると、どうなるかを考えてみると、このメソッドの偉大さが 分かります。
このコードの場合は、String.Joinを使えばいいんじゃねっ、という突っ込みは無しでお願いします。

ちなみに、Share()メソッドが返す方は、IBuffer<TSource> となっています。

もう一つのオーバーロードメソッドがありますが、そちらは試してません。



 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52246353