Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Rekod Pendua dalam LINQ Berdasarkan Medan Tertentu?

Bagaimana untuk Memadam Rekod Pendua dalam LINQ Berdasarkan Medan Tertentu?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-03 06:10:40424semak imbas

How to Delete Duplicate Records in LINQ Based on a Specific Field?

Memadam Pendua dalam Linq Berdasarkan Medan Jadual

Dalam Linq, pengendali berbeza menawarkan cara mudah untuk menghapuskan rekod pendua daripada jadual. Walau bagaimanapun, secara lalai, ia membandingkan keseluruhan rekod, bukan hanya medan tertentu.

Apabila anda berhasrat untuk menapis rekod pendua berdasarkan satu medan sahaja, seperti r.Teks dalam contoh anda, pendekatan yang diubah suai diperlukan .

Menggunakan pertanyaan yang anda berikan:

var query = (from r in table1
orderby r.Text
select r).distinct();

akan menghalang pendua, tetapi berdasarkan kandungan gabungan semua medan, bukan hanya r.Teks.

Untuk mencapai hasil yang anda inginkan, pertimbangkan pertanyaan berikut:

table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());

Pertanyaan ini akan mengumpulkan jadual1 mengikut medan Teks menggunakan GroupBy . Dalam setiap kumpulan, ia memilih item pertama menggunakan FirstOrDefault(). Koleksi yang terhasil akan mengandungi baris di mana medan Teks adalah berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod Pendua dalam LINQ Berdasarkan Medan Tertentu?. 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