Junior — Middle
LINQ-ում FirstOrDefault և SingleOrDefault մեթոդների տարբերությունները ինչ են?
sobes.tech AI
Պատասխան AI-ից
LINQ-ում FirstOrDefault և SingleOrDefault մեթոդները օգտագործվում են հաջորդականությունից տարրեր ընտրելու համար, բայց ունեն տարբեր իմաստներ.
FirstOrDefaultվերադարձնում է առաջին տարր հաջորդականությունից, եթե կա, հակառակ դեպքում՝ նախնական արժեքը (null՝ հղման տիպերի համար):SingleOrDefaultվերադարձնում է միայն մի տարր հաջորդականությունից, եթե կա միայն մեկը, հակառակ դեպքում՝- Եթե տարրեր չկան, վերադարձնում է նախնական արժեքը:
- Եթե ավելի քան մեկը, նետում է
InvalidOperationExceptionարտահայտությունը:
Օրինակ՝
var numbers = new List<int> { 1, 2, 3 };
var first = numbers.FirstOrDefault(); // կվերադարձնի 1
var single = numbers.SingleOrDefault(); // կբերի արտահայտություն, քանի որ ավելի քան մեկ տարր կա
var empty = new List<int>();
var firstEmpty = empty.FirstOrDefault(); // կվերադարձնի 0 (առաջնական արժեք int-ի համար)
var singleEmpty = empty.SingleOrDefault(); // նույնպես 0
var singleItem = new List<int> { 42 };
var singleValue = singleItem.SingleOrDefault(); // կվերադարձնի 42
Ամփոփում՝
- Օգտագործեք
FirstOrDefault, երբ ուզում եք ստանալ առաջին տարր կամ null, եթե տարրեր չկան: - Օգտագործեք
SingleOrDefault, երբ սպասում եք միայն մեկ տարր և ուզում եք սխալ ստանալ, եթե ավելի քան մեկը կա։