Ben şu anda herhangi düşünemiyorum ama LINQ kullanarak kolayca koleksiyonunun bir kısmını temsil eden bir IEnumerable<T>
oluşturabilir.
Anladığım kadarıyla, C# yolu, koleksiyonun bir parçasını koleksiyonun kendisi olarak görmek ve method
ürününüzün bu sıra üzerinde çalışmasını sağlamaktır. Bu fikir, yöntemin tüm koleksiyonda veya onun parçası üzerinde çalışıp çalışmadığına dair cahil olmasını sağlar.
Örnekler:
void method(IEnumerable<T> collection)
{ ... }
// from 2-nd to 5-th item:
method(original.Skip(1).Take(4));
// all even items:
method(original.Where(x => x % 2 == 0));
// everything till the first 0
method(original.TakeWhile(x => x != 0));
// everything
method(original);
vb
C++ ile karşılaştırın: kodunuzu etrafında geçmek için iterators hesaplar, C++
// from 2-nd to 5-th item:
method(original.begin() + 1, original.begin() + 5);
// everything
method(original.begin(), original.end());
// other two cannot be coded in this style in C++
ve başlangıcını işaretlemek ve sıranın sonu. C# 'da hafif IEnumerable
s geçersiniz. Tembel değerlendirme nedeniyle bunun hiçbir yükü olmamalıdır.