C# linq分组计数
时间: 2024-02-16 10:58:49 浏览: 275
在C#中,LINQ (Language Integrated Query) 是一个强大的工具,用于处理集合数据,包括分组和计数。
假设你有一个`List<int>`,并且你想要按特定的规则对其进行分组并计数,你可以使用LINQ来完成这个任务。
下面是一个例子:
```csharp
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var groupedCount = numbers.GroupBy(x => x / 2) // 分组规则,这里按每个数字除以2进行分组
.Select(x => new { GroupName = x.Key, Count = x.Count() }) // 获取每个组并计算数量
.ToList(); // 将结果转化为列表以便输出
foreach (var item in groupedCount)
{
Console.WriteLine($"Group Name: {item.GroupName}, Count: {item.Count}");
}
```
在这个例子中,我们首先创建了一个包含一些整数的列表。然后我们使用`GroupBy`方法根据每个数字除以2的结果进行分组。`GroupBy`方法返回一个由分组键(在这个例子中是每个数字除以2的结果)和每个键对应的元素集合组成的集合。然后我们使用`Select`方法来创建一个新的对象,该对象包含了组名(即键)和计数。最后,我们将结果转换为列表并打印出来。
上述代码会按照每组包含两个数字的方式对列表进行分组,并且打印出每个组的组名和数量。例如,如果输出结果是 `Group Name: 1, Count: 2` 和 `Group Name: 3, Count: 2`,那么这就表示原始列表中有两个数字分别是1和3,它们被分到了同一个组中。
这只是LINQ的一个基本用法,你可以根据需要对其进行修改和扩展。例如,你可以使用`Count`方法来获取特定组的元素数量,或者使用其他的方法来对分组后的数据进行进一步的处理和分析。
阅读全文