İçeriğe geç

Multiple enumeration (ARCH901)

Anahtar dotnet.linq.multiple-enumeration · Onem warning · Kategori linq

Ayni IEnumerable uzerinde tekrar tekrar dolasmak temel sorguyu her seferinde yeniden calistirir.

IEnumerable<Order> orders = GetOrders();
if (orders.Any())
{
var count = orders.Count(); // enumerates again
var first = orders.First(); // and again
}
List<Order> orders = GetOrders().ToList();
if (orders.Count > 0)
{
var count = orders.Count;
var first = orders[0];
}

Kaynagi bir kez ToList() ile materialize edip listeyi kullanin.