Sobes.tech
Junior — Middle

LINQ-də FirstOrDefault və SingleOrDefault metodları arasındakı fərqlər nədir?

sobes.tech Süni İntellekt

AI-dan cavab

LINQ-də FirstOrDefaultSingleOrDefault metodları ardıcıllıqdan elementləri seçmək üçün istifadə olunur, lakin fərqli semantikalara malikdir:

  • FirstOrDefault ardıcıllığın birinci elementini qaytarır, əgər varsa, yoxsa standart dəyəri (nümunə üçün null) qaytarır.
  • SingleOrDefault ardıcıllıqdan yalnız bir elementi qaytarır, əgər tam olaraq bir dənədirsə, əks halda:
    • Elementlər yoxdursa, standart dəyəri qaytarır.
    • Əks halda, InvalidOperationException istisnasını atır.

Nümunə:

var numbers = new List<int> { 1, 2, 3 };

var first = numbers.FirstOrDefault(); // 1 qaytarır
var single = numbers.SingleOrDefault(); // çox element olduğu üçün istisna atır

var empty = new List<int>();

var firstEmpty = empty.FirstOrDefault(); // 0 qaytarır (int üçün standart)
var singleEmpty = empty.SingleOrDefault(); // də 0 qaytarır

var singleItem = new List<int> { 42 };

var singleValue = singleItem.SingleOrDefault(); // 42 qaytarır

Qısaca:

  • Əgər ilk elementi və ya element yoxsa null istəyirsinizsə, FirstOrDefault istifadə edin.
  • Əgər tam olaraq bir element gözləyirsiniz və çox olarsa xəta almaq istəyirsinizsə, SingleOrDefault istifadə edin.