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