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!