Domanda

Sono un po 'perso nella terra di esecuzione differita:

Dichiaro un'istanza di una lezione di implementazione IEnumerable

var wordEnumerable = new WordEnumerable(_text);

Quindi citerò sopra (la prima parola è "Lorem")

foreach (var word in wordEnumerable)
                    Console.WriteLine(word);

.. che è scritto sulla console.

Ora proprio dopo nel codice faccio a

Console.WriteLine(wordEnumerable.Any(w => w == "Lorem"));

.. e ottenere un falso come output.

Ora se metto la parte .any (..) sopra il ciclo foreach ottengo un vero, tuttavia il ciclo inizia con la seconda parola.

Mio aspettativa Era che .NET crea "contesti di runtime" diversi per ogni chiamata a un Ienumerable e il suo Ienumeratore sottostante in modo che non interferiscano ... Non vorrei .reset () a mano per ottenere un risultato adeguato?

Cosa mi manca qui?

Aggiornare:

.. È fondamentalmente un ignibo che mi permette di iterare sulle parole all'interno di una determinata stringa.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top