首页 > 解决方案 > 执行 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'。你打算调用该方法吗?”

标签: c#linq

解决方案


Count 是一种方法,因此您的最后一行应如下所示:

int countLinkGroups = linqGroups.Count();

https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.count?view=netframework-4.8


推荐阅读