Sobes.tech
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дан фойдаланинг.