3
Kaedah Linqadalah serupa, tetapi tingkah laku sedikit berbeza. Marilah kita meneroka adegan setiap kaedah secara mendalam. bila hendak menggunakan .firt ()
.First()
Jika anda yakin bahawa urutan selalu mengandungi sekurang -kurangnya satu elemen, sila gunakan .FirstOrDefault()
. Ia akan mengembalikan elemen sepadan pertama. Jika anda tidak dapat mencari elemen yang sepadan, anda akan membuang keabnormalan "InvalidOperationException". Apabila urutan kosong adalah keadaan yang tidak normal, kaedah ini boleh digunakan.
bila hendak menggunakan .firtonefault ()
.First()
bila hendak menggunakan .take (1)
Kaedah ini sama dengan , tetapi terdapat perbezaan utama. Ia tidak mengembalikan elemen itu sendiri, tetapi mengembalikan urutan yang mengandungi hanya elemen. Perbezaan ini menjadi penting apabila memproses urutan jenis nilai.
Contoh .FirstOrDefault()
<.> Gunakan .first ():
.Take(1)
.First()
Kerana kejadian dalam urutan (2), kod ini akan mengembalikan nilai 2. Sekiranya tidak ada nombor, ia akan membuang pengecualian.
<.> Gunakan .FirtonterFault ():
Dalam kes ini, tidak ada yang sepadan dengan predikat, jadi
mengembalikan nilai lalai integer, iaitu, 0.<code class="language-csharp">var list = new List<int> { 1, 2, 3 };</code>
<.> Gunakan .take (1):
<code class="language-csharp">int result = list.Where(x => x % 2 == 0).First();</code>
Atas ialah kandungan terperinci .First() vs. FirstOrDefault() dalam LINQ: Bilakah Saya Perlu Menggunakan Setiap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!