Sobes.tech
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, InvalidOperationException istisnası 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 FirstOrDefault kullanın.
  • Tam olarak bir öğe bekliyorsanız ve daha fazlası olursa hata almak istiyorsanız SingleOrDefault kullanın.