Reactive Extensions の System.Interactive.dll (v1.0.2521.0) には、メソッドとメソッドのEnumerableEx
両方があります。API ドキュメントは、どちらも同じです。Memoize
MemoizeAll
元の列挙型を 1 回だけ列挙し、その結果をキャッシュする列挙型を作成します。
ただし、これらの方法は明らかに同一ではありません。を使用するMemoize
と、最初に列挙したときに列挙型に値があり、2 回目には空のように見えます。使用するMemoizeAll
と、どちらのメソッドの説明からも期待できる動作が得られます。結果を何度でも列挙して、毎回同じ結果を得ることができますが、ソースは 1 回しか列挙されません。
これらの方法の意図的な違いは何ですか? ユースケースはMemoize
何ですか?ドキュメントが非常に紛らわしいため、かなり役に立たない方法のようです。