Jak przeglądać kolekcję obsługującą IEnumerable?
c#
for-loop
foreach
ienumerable
mrblah
źródło
źródło
Oprócz już sugerowanych metod używania
foreach
pętli, pomyślałem, że wspomnę również, że każdy obiekt, który implementuje,IEnumerable
również zapewniaIEnumerator
interfejs za pośrednictwem tejGetEnumerator
metody. Chociaż ta metoda zwykle nie jest konieczna, można jej użyć do ręcznego iterowania po kolekcjach i jest szczególnie przydatna podczas pisania własnych metod rozszerzających dla kolekcji.IEnumerable<T> mySequence; using (var sequenceEnum = mySequence.GetEnumerator()) { while (sequenceEnum.MoveNext()) { // Do something with sequenceEnum.Current. } }
Głównym przykładem jest sytuacja, w której chcesz wykonać iterację w dwóch sekwencjach jednocześnie , co nie jest możliwe w przypadku
foreach
pętli.źródło
a nawet bardzo klasyczną staromodną metodę
IEnumerable<string> collection = new List<string>() { "a", "b", "c" }; for(int i = 0; i < collection.Count(); i++) { string str1 = collection.ElementAt(i); // do your stuff }
może spodobałaby Ci się również ta metoda :-)
źródło
foreach (var element in instanceOfAClassThatImplelemntIEnumerable) { }
źródło
Może zapomniałeś o czekaniu przed zwrotem kolekcji
źródło