在C#中,要對集合進行分組操作,可以使用LINQ(Language Integrated Query)中的GroupBy
方法。GroupBy
方法可以根據指定的鍵對集合中的元素進行分組。以下是一個簡單的示例:
首先,創建一個類,例如Person
,用于存儲集合中的元素:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string City { get; set; }
}
接下來,創建一個Person
對象的集合:
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 30, City = "New York" },
new Person { Name = "Bob", Age = 25, City = "Los Angeles" },
new Person { Name = "Charlie", Age = 30, City = "New York" },
new Person { Name = "David", Age = 25, City = "Los Angeles" },
new Person { Name = "Eva", Age = 25, City = "Chicago" }
};
現在,使用LINQ的GroupBy
方法對集合進行分組操作。例如,按年齡和城市進行分組:
var groupedPeople = people.GroupBy(p => new { p.Age, p.City });
groupedPeople
現在是一個IGrouping<Person, dynamic>
集合,其中每個元素都是一個包含年齡和城市鍵的組。要訪問每個組的元素,可以使用First
、Last
等方法:
foreach (var group in groupedPeople)
{
Console.WriteLine($"Age: {group.Key.Age}, City: {group.Key.City}");
foreach (var person in group)
{
Console.WriteLine($" Name: {person.Name}");
}
}
這將輸出以下結果:
Age: 30, City: New York
Name: Alice
Name: Charlie
Age: 25, City: Los Angeles
Name: Bob
Name: David
Age: 25, City: Chicago
Name: Eva
這就是如何在C#中使用LINQ的GroupBy
方法對集合進行分組操作。你可以根據需要修改鍵的類型和分組條件。