LINQ 选择和分组依据

Tre*_*ild 4 c# linq

对 LINQ 相当陌生,认为我想做的事情应该很容易。我有一个产品列表 ( ProductId, ProductDesc),我正在尝试提取该列表的一个子集并将其分组ProductId。从那里,我想将该子集绑定到一个 listView。这是我正在处理的查询:

productCounts = (from record in wowReportData 
                 group record by record.ProductID 
                 into grouping
                 orderby grouping.Key
                 select new topProduct 
                 { 
                     ProductID = grouping.Key, 
                     Quantity = grouping.Count(),
                     Name = grouping.
                 }).ToList();
Run Code Online (Sandbox Code Playgroud)

这是我要填充的类:

public class topProduct
{
    public string ProductID { get; set; }
    public int Quantity { get; set; }
    public string Name { get; set; }

    public topProduct() { }

    public topProduct(string productId, string productDesc, int downloadCount)
    {
        this.ProductID = productId;
        this.Name = productDesc;
        this.Quantity = downloadCount;
    }
}
Run Code Online (Sandbox Code Playgroud)

我只显示productId和计数就可以正常工作,但我还需要将描述添加到显示中。在进行分组时,我对如何添加产品描述感到困惑。

Gil*_*een 5

我假设每个名称只有一个名称,ProductId因此您希望为此按 2 个字段分组:

productCounts = (from record in wowReportData 
                 group record by new { record.ProductID, record.Name } into grouping
                 orderby grouping.Key.ProductID
                 select new topProduct 
                 { 
                     ProductID = grouping.Key.ProductID, 
                     Quantity = grouping.Count(),
                     Name = grouping.Key.Name
                 }).ToList();
Run Code Online (Sandbox Code Playgroud)

如果不是这种情况,则使用FirstOrDefault并指定如何选择它


另外,只是一点关于 C# - 请看这里这里的命名约定