Junior — Middle
LINQ'da FirstOrDefault va SingleOrDefault metodlari orasidagi farqlar nima?
sobes.tech AI
AIdan javob
LINQда FirstOrDefault ва SingleOrDefault методлари тизмадан элементларни танлаш учун қўлланилади, аммо уларнинг маъноси турлича:
FirstOrDefaultтизмадан биринчи элементни қайтариб, агар мавжуд бўлса, акс ҳолда стандарт қийматни (худуд учун null) қайтариб беради.SingleOrDefaultтизмадан ягона элементни қайтариб, агар аниқ бир бўлса, акс ҳолда:- Агар элементлар йўқ бўлса, стандарт қийматни қайтариб беради.
- Агар бирдан кўп бўлса,
InvalidOperationExceptionхато чиқаради.
misol:
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 қайтариб беради
хулоса:
- Агар биринчи элементни ёки элементлар йўқ бўлса null қайтаришни истасангиз,
FirstOrDefaultдан фойдаланинг. - Агар аниқ бир элемент бўлишини кутсangiz ва кўп бўлса хато олишни истасангиз,
SingleOrDefaultдан фойдаланинг.