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` мебарорад