在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
方法对集合进行分组操作。你可以根据需要修改键的类型和分组条件。