Junior — Middle
LINQ'de FirstOrDefault ve SingleOrDefault yöntemleri arasındaki farklar nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
LINQ'te FirstOrDefault ve SingleOrDefault yöntemleri, bir diziden öğe seçmek için kullanılır, ancak farklı anlamlara sahiptir:
FirstOrDefault, dizinin ilk öğesini döndürür, eğer varsa, aksi takdirde varsayılan değeri (referans türleri için null) döner.SingleOrDefault, dizinin yalnızca bir öğesi varsa onu döndürür, aksi takdirde:- Öğeler yoksa, varsayılan değeri döner.
- Birden fazla öğe varsa,
InvalidOperationExceptionistisnası fırlatır.
Örnek:
var numbers = new List<int> { 1, 2, 3 };
var first = numbers.FirstOrDefault(); // 1 döner
var single = numbers.SingleOrDefault(); // birden fazla öğe olduğu için istisna fırlatır
var empty = new List<int>();
var firstEmpty = empty.FirstOrDefault(); // 0 döner (int için varsayılan)
var singleEmpty = empty.SingleOrDefault(); // de 0 döner
var singleItem = new List<int> { 42 };
var singleValue = singleItem.SingleOrDefault(); // 42 döner
Özetle:
- İlk öğeyi almak veya öğe yoksa null almak istiyorsanız
FirstOrDefaultkullanın. - Tam olarak bir öğe bekliyorsanız ve daha fazlası olursa hata almak istiyorsanız
SingleOrDefaultkullanın.