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`