c#

c#集合如何进行分组操作

小樊
81
2024-11-20 12:29:36
栏目: 编程语言

在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>集合,其中每个元素都是一个包含年龄和城市键的组。要访问每个组的元素,可以使用FirstLast等方法:

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

0
看了该问题的人还看了