Middle
Kāda ir atšķirība starp metodēm FirstOrDefault un SingleOrDefault?
sobes.tech AI
Atbilde no AI
FirstOrDefault() atgriež pirmo elementu secībā, kas atbilst nosacījumam, vai noklusējuma vērtību (null atsauces tipiem, 0 skaitliskajiem tipiem), ja tādu elementu nav.
SingleOrDefault() atgriež vienīgo elementu secībā, kas atbilst nosacījumam, vai noklusējuma vērtību, ja tādu nav. Ja ir vairāk nekā viens, tiek iemesta izņēmuma InvalidOperationException.
| Īpašība | FirstOrDefault | SingleOrDefault |
|---|---|---|
| Atrod 1+ elementus | Atgriež pirmo | Izmet izņēmumu |
| Neatrod elementu | Atgriež noklusējuma vērtību | Atgriež noklusējuma vērtību |
| Sagaidāmais skaits | Nulle vai vairāk | Precīzi viens |
// Piemērs, kā lietot FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber būs 2
var nonExistent = numbers.FirstOrDefault(n => n > 10); // nonExistent būs 0
// Piemērs, kā lietot SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result būs 7
var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue būs 0
var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Šī rinda izmetīs `InvalidOperationException`