如何获取下面的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'。您是否打算调用该方法?”
答案 0 :(得分:2)
Count是一种方法,因此您的最后一行应如下所示:
int countLinkGroups = linqGroups.Count();
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.count?view=netframework-4.8
答案 1 :(得分:1)
您可以像这样对分组本身进行计数
var linqGroups = lstPOInfo.GroupBy(x => x.VendorName)
.Select(x => new { Key = x.key,
Count = x.Count()
}).ToList();
答案 2 :(得分:1)
您可以直接将Count()
扩展名用于组
var linqGroups = lstPOInfo.GroupBy(x => x.VendorName);
int countLinkGroups = linqGroups.Count();
这将为您提供大量的供应商,希望这可以为您提供帮助