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
Linda Hamiltonasal
2025-02-02 00:11:09910semak imbas

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

<code class="language-csharp">class Person
{
    public int PersonID { get; set; }
    public string Car { get; set; }
}</code>
Pertimbangkan senarai objek

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

<code class="language-csharp">List<Person> persons = new List<Person>()
{
    new Person { PersonID = 1, Car = "Ferrari" },
    new Person { PersonID = 1, Car = "BMW" },
    new Person { PersonID = 2, Car = "Audi" }
};</code>
Untuk mengumpulkan orang -orang ini dengan

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

<code class="language-csharp">var results = persons.GroupBy(p => p.PersonID, p => p.Car);</code>

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,
<code class="language-csharp">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)}");
}</code>
mencipta struktur seperti kamus (

): ToLookup ILookup<int, string>

mengakses data kemudian lebih mudah:
<code class="language-csharp">var carsByPersonID = persons.ToLookup(p => p.PersonID, p => p.Car);</code>

kedua -dua
<code class="language-csharp">List<string> carsForPerson1 = carsByPersonID[1].ToList();
Console.WriteLine($"Cars for Person 1: {string.Join(", ", carsForPerson1)}");</code>
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:
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