Wie durchlaufe ich eine Sammlung, die IEnumerable unterstützt?
Antworten:
Ein Stammgast für jeden reicht aus:
foreach (var item in collection)
{
// do your stuff
}
Neben den bereits vorgeschlagenen Methoden zur Verwendung einer foreach
Schleife dachte ich, ich würde auch erwähnen, dass jedes Objekt, das implementiert, IEnumerable
auch eine IEnumerator
Schnittstelle über die GetEnumerator
Methode bereitstellt . Obwohl diese Methode normalerweise nicht erforderlich ist, kann sie zum manuellen Durchlaufen von Sammlungen verwendet werden und ist besonders nützlich, wenn Sie eigene Erweiterungsmethoden für Sammlungen schreiben.
IEnumerable<T> mySequence;
using (var sequenceEnum = mySequence.GetEnumerator())
{
while (sequenceEnum.MoveNext())
{
// Do something with sequenceEnum.Current.
}
}
Ein Paradebeispiel ist, wenn Sie zwei Sequenzen gleichzeitig durchlaufen möchten , was mit einer foreach
Schleife nicht möglich ist.
oder sogar eine sehr klassische altmodische Methode
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
}
Vielleicht möchten Sie diese Methode auch :-)
foreach (var element in instanceOfAClassThatImplelemntIEnumerable)
{
}
Vielleicht haben Sie das Warten vor der Rücksendung Ihrer Sammlung vergessen