Sobes.tech
Middle

Ի՞նչ տարբերություն կա FirstOrDefault և SingleOrDefault մեթոդների միջև։

sobes.tech AI

Պատասխան AI-ից

FirstOrDefault() վերադարձնում է առաջին տարրը հաջորդականությունից, որը բավարարում է պայմանը, կամ նախնական արժեքը (null հղման տիպերի համար, 0 համար թվային տիպերի), եթե նման տարրեր չկան:
SingleOrDefault() վերադարձնում է միակ տարրը հաջորդականությունից, որը բավարարում է պայմանը, կամ նախնական արժեքը, եթե նման տարրեր չկան: Եթե ավելի քան մեկը կա, գցվում է InvalidOperationException բացառություն:

Գծագիր FirstOrDefault SingleOrDefault
1+ տարրեր գտնվեցին Վերադարձնում է առաջինը Բացառություն գցում
Տարր չի գտնվել Վերադարձնում է նախնական արժեքը Վերադարձնում է նախնական արժեքը
Կանխատեսվող քանակը զրո կամ ավելի Միայն մեկը
// Օրինակ օգտագործման FirstOrDefault
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumber = numbers.FirstOrDefault(n => n % 2 == 0); // evenNumber կլինի 2
var nonExistent = numbers.FirstOrDefault(n => n > 10);   // nonExistent կլինի 0

// Օրինակ օգտագործման SingleOrDefault
var singleNumber = new List<int> { 7 };
var result = singleNumber.SingleOrDefault(); // result կլինի 7

var emptyList = new List<int>();
var defaultValue = emptyList.SingleOrDefault(); // defaultValue կլինի 0

var multipleNumbers = new List<int> { 1, 2, 3 };
// var error = multipleNumbers.SingleOrDefault(); // Այս տողը գցում է `InvalidOperationException`