Sobes.tech
Junior — Middle

LINQ-ში FirstOrDefault და SingleOrDefault მეთოდების განსხვავებები რა არის?

sobes.tech AI

პასუხი AI-სგან

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

  • FirstOrDefault ardıcıllığın birinci elementini qaytarır, əgər varsa, başqa halda standart dəyəri (null) qaytarır.
  • SingleOrDefault ardıcıllıqdan yalnız bir elementi qaytarır, əgər tam olaraq bir isə, başqa halda:
    • Əgər elementlər yoxdursa, standart dəyəri qaytarır.
    • Əgər daha çoxsa, 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(); // istisna atır, çünki çox element var

var empty = new List<int>();

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

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

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

Xülasə:

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