Rumah >pembangunan bahagian belakang >C++ >.First vs. FirstOrDefault dalam LINQ: Bila Untuk Menggunakan Yang Mana?

.First vs. FirstOrDefault dalam LINQ: Bila Untuk Menggunakan Yang Mana?

Linda Hamilton
Linda Hamiltonasal
2025-01-26 10:46:08715semak imbas

Bila hendak menggunakan .First dan .FirstOrDefault dalam LINQ

.First vs. FirstOrDefault in LINQ: When to Use Which?

Bila hendak menggunakan .Pertama?

Gunakan kaedah .First apabila:

  • Anda menjangkakan atau telah mengesahkan bahawa jujukan itu mengandungi sekurang-kurangnya satu elemen.
  • Situasi di mana unsur tidak wujud adalah situasi yang tidak normal dan perlu ditangani segera.

Bila hendak menggunakan .FirstOrDefault?

Gunakan kaedah .FirstOrDefault apabila:

  • Anda menjangkakan bahawa urutan itu mungkin kosong.
  • Anda perlu menyemak dengan jelas sama ada unsur itu wujud sebelum melakukan operasi selanjutnya.

.Perbandingan kaedah Ambil

Kaedah

.Take berbeza daripada kaedah .First:

  • .Take Mengembalikan urutan yang mengandungi bilangan elemen yang ditentukan.
  • Apabila anda hanya memerlukan elemen pertama, anda boleh menggunakan .Take(1) untuk mendapatkannya.

Contoh aplikasi praktikal

Sebagai contoh, jika anda mempunyai senarai nama dan perlu mendapatkan semula nama pertama yang sepadan atau mengendalikan kes bukan padanan, anda boleh menggunakan .FirstOrDefault:

<code class="language-csharp">List<string> names = GetNames();
string name = names.FirstOrDefault(n => n == "John");
if (name != null)
{
    // 处理找到 "John" 的情况。
}
else
{
    // 处理未找到 "John" 的情况。
}</code>

Sebaliknya, jika anda menjangkakan senarai sentiasa mengandungi sekurang-kurangnya satu nama, anda boleh menggunakan .First untuk mendapatkan terus elemen pertama dan membuang pengecualian jika ia tidak ditemui:

<code class="language-csharp">string name = names.First(n => n == "John");</code>

Atas ialah kandungan terperinci .First vs. FirstOrDefault dalam LINQ: Bila Untuk Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn