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`-ს