Heim >Backend-Entwicklung >C++ >Wie kann ich mithilfe von LINQ eine Liste von Objekten nach einer gemeinsamen Eigenschaft gruppieren?

Wie kann ich mithilfe von LINQ eine Liste von Objekten nach einer gemeinsamen Eigenschaft gruppieren?

Susan Sarandon
Susan SarandonOriginal
2025-01-13 12:12:43970Durchsuche

How Can I Group a List of Objects by a Shared Property Using LINQ?

Gruppieren Sie eine Liste von Objekten mit LINQ

Bei der objektorientierten Programmierung ist es häufig erforderlich, Objekte entsprechend den Freigabebedingungen zu gruppieren. Dies kann effizient mit LINQ (Language Integrated Query) erfolgen. Im Folgenden erfahren Sie, wie Sie eine Liste von Objekten in einer neuen gruppierten Liste gruppieren, die mehrere Objektlisten enthält.

Frage:

Stellen Sie sich eine Klasse vor, die einen Benutzer darstellt:

<code class="language-csharp">public class User
{
    public int UserID { get; set; }
    public string UserName { get; set; }
    public int GroupID { get; set; }
}</code>

Angenommen, wir haben eine Liste von Benutzern:

<code class="language-csharp">List<User> userList = new List<User>();
userList.Add(new User { UserID = 1, UserName = "UserOne", GroupID = 1 });
userList.Add(new User { UserID = 2, UserName = "UserTwo", GroupID = 1 });
userList.Add(new User { UserID = 3, UserName = "UserThree", GroupID = 2 });
userList.Add(new User { UserID = 4, UserName = "UserFour", GroupID = 1 });
userList.Add(new User { UserID = 5, UserName = "UserFive", GroupID = 3 });
userList.Add(new User { UserID = 6, UserName = "UserSix", GroupID = 3 });</code>

Unser Ziel ist es, Benutzer nach ihrer Gruppen-ID zu gruppieren, was zu einer Liste von Benutzern führt, die nach Gruppen gruppiert sind.

Lösung:

LINQ bietet mithilfe der GroupBy-Methode einen leistungsstarken Gruppierungsmechanismus. Der folgende Codeausschnitt zeigt, wie Sie die gewünschte Gruppierung erreichen:

<code class="language-csharp">var groupedUserList = userList
    .GroupBy(u => u.GroupID)
    .Select(grp => grp.ToList())
    .ToList();</code>

Code-Aufschlüsselung:

  1. GroupBy: Dies ist der Kern des Gruppierungsvorgangs. Es gruppiert Benutzer nach ihrer Gruppen-ID und generiert eine Liste von Gruppen, in der jede Gruppe Benutzer darstellt, die derselben Gruppe angehören.
  2. Auswählen: Da die Ausgabe von GroupBy eine Liste von Gruppen ist (bezeichnet als IGrouping<int, User>), müssen wir Benutzer aus jeder Gruppe auswählen. Wir verwenden die ToList-Methode in Select, um jede Gruppe in eine Liste von Benutzern umzuwandeln.
  3. ToList: Abschließend verwenden wir ToList, um die Liste der Benutzerlisten wieder in eine Liste umzuwandeln.

groupedUserList enthält jetzt die erforderliche Gruppierung: eine Liste von Benutzerlisten, wobei jede innere Liste einen Benutzer darstellt, der derselben Gruppe angehört.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von LINQ eine Liste von Objekten nach einer gemeinsamen Eigenschaft gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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