c# - 执行 Linq.Groupby C# 后如何获得计数
问题描述
如何获取下面 linqGroups 中项目的计数。我想在调试/跟踪语句中显示它。该代码用于允许我为每个供应商创建一个采购订单。所以问题是运行 .GroupBy 子句后有多少供应商或采购订单。
List<webPOInfo> lstPOInfo = new List<webPOInfo>();
int poItemsCount = 0;
foreach (var item in linqQuery)
{
poItemsCount++;
webPOInfo info = new webPOInfo(item.qVendorName, item.qSku, item.qTransID, item.qSize, item.qQty);
lstPOInfo.Add(info);
}
//loop through each vendor name group
var linqGroups = lstPOInfo.GroupBy(x => x.VendorName);
int countLinkGroups = linqGroups.Count<webPOInfo>; // Error here
我上面的尝试给了我“错误1无法将方法组'Count'转换为非委托类型'int'。你打算调用该方法吗?”
解决方案
Count 是一种方法,因此您的最后一行应如下所示:
int countLinkGroups = linqGroups.Count();
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.count?view=netframework-4.8
推荐阅读
- javascript - 在 Editor.js 中将实例限制为一种块样式
- google-apps-script - 在 Google Apps 脚本中的屏幕上显示可点击的链接
- c# - C# 和实体框架 - 主页上的多种方法在页面加载期间访问数据库
- sql-server-2014 - 从 SQL Server 2014 中的表数据中选择摘要行
- machine-learning - K-NN 算法如何在 rapidminer 中以相同的距离工作?
- r - 如何将具有特定值的行合并到R中的表中?
- javascript - 检查复选框已选中
- regex - 我将如何实现字数统计,并且不允许在谷歌表单中的一个正则表达式中使用某些单词
- jenkins - 在 Jenkins 模板引擎中实现版本控制
- linux-kernel - 为什么 kexec-tools 不起作用?是不是我做错了什么?