Sobes.tech
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`