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 foreach
döngü kullanma yöntemlerinin yanı sıra , uygulayan herhangi bir nesnenin IEnumerable
de yöntem IEnumerator
aracı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 foreach
dö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