在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
对象的集合:
Listpeople = new List { 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
集合,其中每个元素都是一个包含年龄和城市键的组。要访问每个组的元素,可以使用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
方法对集合进行分组操作。你可以根据需要修改键的类型和分组条件。