Junior — Middle
LINQ-ში FirstOrDefault და SingleOrDefault მეთოდების განსხვავებები რა არის?
sobes.tech AI
პასუხი AI-სგან
LINQ-də FirstOrDefault və SingleOrDefault metodları ardıcıllıqdan elementləri seçmək üçün istifadə olunur, lakin onların mənası fərqlidir:
FirstOrDefaultardıcıllığın birinci elementini qaytarır, əgər varsa, başqa halda standart dəyəri (null) qaytarır.SingleOrDefaultardı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,
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(); // 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ə,
FirstOrDefaultistifadə edin. - Əgər yalnız bir element gözləyirsiniz və çox olarsa xəta almaq istəyirsinizsə,
SingleOrDefaultistifadə edin.