operator linq: .first, .firstordefault, dan .take - panduan perbandingan
Berkesan LINQ Berkesan engsel untuk memilih pengendali yang betul. Panduan ini menjelaskan perbezaan antara, .First
, dan .FirstOrDefault
, membantu anda memilih pengendali optimum untuk keperluan anda. .Take
Memahami .First
apabila anda yakin urutan anda mengandungi sekurang -kurangnya satu elemen yang sepadan dengan kriteria anda. Jika tiada perlawanan dijumpai, .First
melemparkan pengecualian. Ini sesuai untuk situasi di mana hasil kosong tidak dijangka dan memerlukan pengendalian ralat yang jelas: .First
<code class="language-csharp">var result = List.Where(x => x == "foo").First(); // Throws exception if "foo" is not found</code>
memanfaatkan .FirstOrDefault
apabila berurusan dengan urutan yang mungkin kosong. Ia mengembalikan nilai lalai untuk jenis elemen (mis., .FirstOrDefault
Untuk jenis rujukan, 0 untuk jenis angka) jika tiada perlawanan dijumpai. Ini menghalang pengecualian dan menyediakan cara yang anggun untuk mengendalikan urutan kosong: null
<code class="language-csharp">var result = List.Where(x => x == "foo").FirstOrDefault(); // Returns null if "foo" is not found</code>
dan terletak pada jenis pulangan mereka. .Take(1)
Mengembalikan urutan yang mengandungi paling satu elemen, manakala .First
mengembalikan elemen itu sendiri. bermanfaat apabila anda perlu melakukan operasi tambahan pada elemen dalam konteks urutan:
.Take(1)
Dengan berhati -hati mempertimbangkan hasil yang diharapkan dan potensi untuk urutan kosong, pemaju boleh menulis lebih banyak pertanyaan Linq yang mantap dan cekap, mengelakkan pengecualian yang tidak perlu dan mengoptimumkan prestasi.
Atas ialah kandungan terperinci Linq's .First, .FirStordefault, dan .take: Bilakah menggunakan setiap pengendali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!