Heim > Backend-Entwicklung > C++ > Wie kann ich Daten nach einem bestimmten Schlüssel mit den Gruppen- und Tolookup -Methoden von LINQ gruppieren?

Wie kann ich Daten nach einem bestimmten Schlüssel mit den Gruppen- und Tolookup -Methoden von LINQ gruppieren?

Linda Hamilton
Freigeben: 2025-02-02 00:11:09
Original
903 Leute haben es durchsucht

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

lINQ: Gruppierung von Daten nach Schlüssel mit GroupBy und ToLookup

gruppieren

lINQ liefert effiziente Methoden zum Gruppieren von Daten basierend auf bestimmten Kriterien. Dies ist besonders nützlich, wenn sie sich mit Sammlungen von Objekten befassen und Informationen basierend auf einem gemeinsamen Schlüssel aggregieren müssen.

veranschaulichen wir mit einer Person Klasse:

<code class="language-csharp">class Person
{
    public int PersonID { get; set; }
    public string Car { get; set; }
}</code>
Nach dem Login kopieren

Betrachten Sie eine Liste von Person Objekten, bei denen einige Personen möglicherweise mehrere Einträge haben (z. B. mehrere Autos besitzen):

<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>
Nach dem Login kopieren

, um diese Personen nach PersonID zu gruppieren und ihre Autos aufzulisten, verwenden wir die GroupBy -Methode von Linq:

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

results ist ein IEnumerable<IGrouping<int, string>>. Jedes IGrouping repräsentiert eine Gruppe mit einem gemeinsamen PersonID (über result.Key zugänglich) und enthält eine Sequenz von Autozeichenfolgen (result). Sozug auf diese Daten:

<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>
Nach dem Login kopieren

Alternativ erstellt ToLookup eine wörterbuchartige Struktur (ILookup<int, string>):

<code class="language-csharp">var carsByPersonID = persons.ToLookup(p => p.PersonID, p => p.Car);</code>
Nach dem Login kopieren

Zugriff auf Daten ist dann einfacher:

<code class="language-csharp">List<string> carsForPerson1 = carsByPersonID[1].ToList();
Console.WriteLine($"Cars for Person 1: {string.Join(", ", carsForPerson1)}");</code>
Nach dem Login kopieren

Sowohl GroupBy als auch ToLookup bieten effiziente Möglichkeiten, Daten basierend auf einem Schlüssel zu gruppieren, wodurch die Datenmanipulation in LINQ mehr optimiert werden. ToLookup bietet direkten wörterbuchähnlichen Zugriff, während GroupBy mehr Flexibilität für komplexe Gruppierungsszenarien bietet.

Das obige ist der detaillierte Inhalt vonWie kann ich Daten nach einem bestimmten Schlüssel mit den Gruppen- und Tolookup -Methoden von LINQ gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage