IEnumerable'ı destekleyen bir koleksiyonda nasıl döngü yapılır?
Yanıtlar:
Her biri için bir normal:
foreach (var item in collection)
{
// do your stuff
}
Halihazırda önerilen foreachdöngü kullanma yöntemlerinin yanı sıra , uygulayan herhangi bir nesnenin IEnumerablede yöntem IEnumeratoraracılığıyla bir arayüz sağladığından bahsetmeyi düşündüm GetEnumerator. Bu yöntem genellikle gerekli olmasa da, koleksiyonları el ile yinelemek için kullanılabilir ve özellikle koleksiyonlar için kendi uzantı yöntemlerinizi yazarken yararlıdır.
IEnumerable<T> mySequence;
using (var sequenceEnum = mySequence.GetEnumerator())
{
while (sequenceEnum.MoveNext())
{
// Do something with sequenceEnum.Current.
}
}
En iyi örnek, aynı anda iki sekans üzerinde yineleme yapmak istediğiniz zamandır , bu bir foreachdöngü ile mümkün değildir .
hatta çok klasik bir eski moda yöntemi
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
}
belki bu yöntemi de istersiniz :-)
foreach (var element in instanceOfAClassThatImplelemntIEnumerable)
{
}
Koleksiyonunuzu iade etmeden önce beklemeyi unutmuş olabilirsiniz