Dapatkan daftar nilai yang berbeda dalam Daftar
Dalam C#, mengatakan saya memiliki kelas yang disebut dengan Catatan tiga String variabel anggota.
public class Note
{
public string Title;
public string Author;
public string Text;
}
Dan saya memiliki daftar jenis Catatan:
List<Note> Notes = new List<Note>();
Apa yang akan menjadi yang terbersih cara untuk mendapatkan daftar dari semua nilai-nilai yang berbeda dalam Penulis kolom?
Aku bisa iterate melalui daftar dan menambahkan semua nilai-nilai yang tidak't duplikat ke daftar lain dari string, tapi ini tampaknya kotor dan tidak efisien. Aku punya perasaan ada's ajaib Linq konstruksi yang'll melakukan hal ini dalam satu baris, tapi saya belum't mampu untuk datang dengan sesuatu.
158
5
Ini akan kembali urutan (
IEnumerable<string>
) dariPenulis
nilai-satu per nilai yang unik.Berbeda Catatan kelas oleh Penulis
Jon Skeet telah menulis sebuah perpustakaan yang disebut morelinq yang memiliki
DistinctBy()
operator. Lihat di sini untuk pelaksanaan. Kode anda akan terlihat sepertiUpdate: Setelah kembali membaca pertanyaan anda, Kirk memiliki jawaban yang benar jika anda're hanya mencari set yang berbeda dari Penulis.
Menambahkan sampel, beberapa bidang di DistinctBy:
Dengan menggunakan logika di atas, kita bisa mendapatkan unik `Saja.