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 foreachSchleife dachte ich, ich würde auch erwähnen, dass jedes Objekt, das implementiert, IEnumerableauch eine IEnumeratorSchnittstelle über die GetEnumeratorMethode 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 foreachSchleife 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