Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh mengumpulkan data dengan kunci khusus menggunakan kaedah GroupBy dan Tolookup Linq?
linq: Data pengumpulan dengan kunci dengan dan GroupBy
ToLookup
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 (result.Key
result
<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>
<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!