私は延期された実行の土地で少し迷っています:
IEnumerable 実装クラスのインスタンスを宣言します
var wordEnumerable = new WordEnumerable(_text);
次に、それを繰り返します(最初の単語は「Lorem」です)
foreach (var word in wordEnumerable)
Console.WriteLine(word);
.. コンソールに書き込まれます。
その後、コードで私は
Console.WriteLine(wordEnumerable.Any(w => w == "Lorem"));
..出力として False を取得します。
ここで、.Any(..) 部分を foreach ループの上に置くと、true になりますが、ループは 2 番目の単語から始まります。
私の期待は、.NetがIEnumerableとその基礎となるIEnumeratorへの呼び出しごとに異なるランタイム「コンテキスト」を作成するため、それらが干渉しないことでした...適切な結果?
ここで何が欠けていますか?
更新:
- IEnumerable 実装へのリンク: https://gist.github.com/814352
- IEnumerator 実装へのリンク: https://gist.github.com/814354
- .. そして最後に、基礎となるテキスト パーサーの実装: https://gist.github.com/814358
.. 基本的には、特定の文字列内の単語を反復処理できる IEnumerable です。