IEnumerable uzantı yöntemlerini göz önünde bulundurun SingleOrDefault()veFirstOrDefault()
MSDN aşağıdakileri belgelemektedirSingleOrDefault :
Bir dizinin tek öğesini veya dizi boşsa varsayılan değeri döndürür; sekansta birden fazla eleman varsa bu yöntem bir istisna atar.
oysa FirstOrDefaultgelen MSDN'den (muhtemelen bir kullanıldığında OrderBy()ya da OrderByDescending(), hiç ya da yok)
Bir dizinin ilk öğesini döndürür
Bir kaç örnek sorguyu düşünün, bu iki yöntemi ne zaman kullanacağınız her zaman açık değildir:
var someCust = db.Customers
.SingleOrDefault(c=>c.ID == 5); //unlikely(?) to be more than one, but technically COULD BE
var bobbyCust = db.Customers
.FirstOrDefault(c=>c.FirstName == "Bobby"); //clearly could be one or many, so use First?
var latestCust = db.Customers
.OrderByDescending(x=> x.CreatedOn)
.FirstOrDefault();//Single or First, or does it matter?
Soru
Kullanmaya karar verirken SingleOrDefault()ve FirstOrDefault()LINQ sorgularınızda hangi kuralları izliyorsunuz veya öneriyorsunuz ?