Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh mengumpulkan data dengan kunci khusus menggunakan kaedah GroupBy dan Tolookup Linq?

Bagaimanakah saya boleh mengumpulkan data dengan kunci khusus menggunakan kaedah GroupBy dan Tolookup Linq?

Linda Hamilton
Lepaskan: 2025-02-02 00:11:09
asal
984 orang telah melayarinya

How Can I Group Data by a Specific Key Using LINQ's GroupBy and ToLookup Methods?

linq: Data pengumpulan dengan kunci dengan dan GroupBy ToLookup

LINQ menyediakan kaedah yang cekap untuk mengumpulkan data berdasarkan kriteria tertentu. Ini amat berguna apabila berurusan dengan koleksi objek dan perlu mengagregatkan maklumat berdasarkan kunci yang sama.

mari kita ilustrasikan dengan kelas

: Person

class Person
{
    public int PersonID { get; set; }
    public string Car { get; set; }
}
Salin selepas log masuk
Pertimbangkan senarai objek

, di mana sesetengah individu mungkin mempunyai pelbagai entri (mis., Memiliki pelbagai kereta): Person

List<Person> persons = new List<Person>()
{
    new Person { PersonID = 1, Car = "Ferrari" },
    new Person { PersonID = 1, Car = "BMW" },
    new Person { PersonID = 2, Car = "Audi" }
};
Salin selepas log masuk
Untuk mengumpulkan orang -orang ini dengan

dan senaraikan kereta mereka, kami menggunakan kaedah Linq PersonID: GroupBy

var results = persons.GroupBy(p => p.PersonID, p => p.Car);
Salin selepas log masuk

adalah results. Setiap IEnumerable<IGrouping<int, string>> mewakili kumpulan dengan IGrouping biasa (boleh diakses melalui PersonID), dan mengandungi urutan rentetan kereta (). Untuk mengakses data ini: result.Key result

secara alternatif,
foreach (var result in results)
{
    int personID = result.Key;
    List<string> cars = result.ToList(); // Convert to List for easier access
    Console.WriteLine($"Person ID: {personID}, Cars: {string.Join(", ", cars)}");
}
Salin selepas log masuk
mencipta struktur seperti kamus (

): ToLookup ILookup<int, string>

mengakses data kemudian lebih mudah:
var carsByPersonID = persons.ToLookup(p => p.PersonID, p => p.Car);
Salin selepas log masuk

kedua -dua
List<string> carsForPerson1 = carsByPersonID[1].ToList();
Console.WriteLine($"Cars for Person 1: {string.Join(", ", carsForPerson1)}");
Salin selepas log masuk
dan

menawarkan cara yang cekap untuk mengumpulkan data berdasarkan kunci, menjadikan manipulasi data di LINQ lebih efisien. GroupBy Menyediakan akses seperti kamus langsung, manakala ToLookup menawarkan lebih banyak fleksibiliti untuk senario pengelompokan kompleks. ToLookup

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengumpulkan data dengan kunci khusus menggunakan kaedah GroupBy dan Tolookup Linq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan