Urutan urutan yang dilewati sangat penting dengan TakeWhile, yang akan berakhir segera setelah predikat kembali false, sedangkan Whereakan terus mengevaluasi urutan di luar nilai pertama false.
Penggunaan umum untuk TakeWhileadalah selama evaluasi malas dari enumerable besar, mahal, atau bahkan tak terbatas di mana Anda mungkin memiliki pengetahuan tambahan tentang pengurutan urutan.
misalnya Diberikan urutannya:
IEnumerable<BigInteger> InfiniteSequence()
{
BigInteger sequence = 0;
while (true)
{
yield return sequence++;
}
}
A .Whereakan menghasilkan pengulangan tak terbatas yang mencoba mengevaluasi bagian dari enumerable:
var result = InfiniteSequence()
.Where(n => n < 100)
.Count();
Sedangkan a .TakeWhile, dan berbekal pengetahuan bahwa enumerables sedang menanjak, akan memungkinkan untuk mengevaluasi urutan parsial:
var result = InfiniteSequence()
.TakeWhile(n => n < 100)
.Count();