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ə FirstOrDefault və SingleOrDefault metodları ardıcıllıqdan elementləri seçmək üçün istifadə olunur, lakin fərqli semantikalara malikdir:
FirstOrDefaultardıcıllığın birinci elementini qaytarır, əgər varsa, yoxsa standart dəyəri (nümunə üçün null) qaytarır.SingleOrDefaultardı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,
InvalidOperationExceptionistisnası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ə,
FirstOrDefaultistifadə edin. - Əgər tam olaraq bir element gözləyirsiniz və çox olarsa xəta almaq istəyirsinizsə,
SingleOrDefaultistifadə edin.