Я немного заблудился в отложенной казни:
Я объявляю экземпляр класса реализации 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, однако цикл начинается со второго слова.
Мое ожидание заключалось в том, что .Net создает разные «контексты» времени выполнения для каждого вызова IEnumerable и его основного IEnumerator, чтобы они не мешали ... Я бы не хотел .Reset () это вручную, чтобы получить правильный результат?
Что мне здесь не хватает?
Обновление
.. Это в основном IEnumerable, который позволяет мне перебирать слова в данной строке.