C#中groupby的用法
时间: 2023-07-29 17:05:46 浏览: 118
在C#中,GroupBy是一个LINQ扩展方法,它可以将一个序列按照指定的键分组,并返回一个包含这些分组的集合。下面是GroupBy方法的语法:
```csharp
public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector
);
```
其中,`source`是要分组的序列,`keySelector`是一个函数,用于从序列中的每个元素中提取分组键。
以下是一个简单的示例,演示如何使用GroupBy方法按国家/地区对列表进行分组:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
List<string> countries = new List<string> {
"China", "India", "USA", "Russia", "Japan",
"Germany", "France", "UK", "Italy", "Spain"
};
var groups = countries.GroupBy(x => x.Length);
foreach (var group in groups)
{
Console.WriteLine("Countries with {0} characters:", group.Key);
foreach (var country in group)
{
Console.WriteLine("\t{0}", country);
}
}
}
}
```
输出:
```
Countries with 5 characters:
China
India
Spain
Countries with 3 characters:
USA
UK
Countries with 6 characters:
Russia
France
Countries with 4 characters:
Japan
Italy
```
在此示例中,使用GroupBy方法按国家/地区名称长度进行分组,并在控制台上打印每个分组中的国家/地区名称。
阅读全文