Heim >Backend-Entwicklung >C++ >Wie kann ich mithilfe von LINQ eine Liste von Objekten nach einer gemeinsamen Eigenschaft gruppieren?
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:
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. 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!