Aktarılan dizinin sırası kesinlikle kritiktir ve TakeWhilebir yüklem geri döner dönmez sona erer false, oysa Wherediziyi ilk falsedeğerin ötesinde değerlendirmeye devam eder .
TakeWhileSıranın sıralaması hakkında ek bilgiye sahip olabileceğiniz büyük, pahalı ve hatta sonsuz numaralandırmaların tembel değerlendirmesi sırasında yaygın olarak kullanılır .
Örneğin, sıra verildiğinde:
IEnumerable<BigInteger> InfiniteSequence()
{
BigInteger sequence = 0;
while (true)
{
yield return sequence++;
}
}
A .Where, numaralandırılabilirin bir bölümünü değerlendirmeye çalışan sonsuz bir döngü ile sonuçlanır:
var result = InfiniteSequence()
.Where(n => n < 100)
.Count();
Oysa .TakeWhileve numaralandırılanların yükselmekte olduğu bilgisine sahip olan a, kısmi dizinin değerlendirilmesine izin verir:
var result = InfiniteSequence()
.TakeWhile(n => n < 100)
.Count();