1

我有一个包含产品名称、产品价格和类别的产品列表。我想编写一个 linq 查询来根据类别对所有产品进行分组。我尝试了以下方法:

var p = from s in productlist
        group s by s.Category into g
        select new { Category = g.Key, Products = g};

使用此查询,它显示了一个包含两列作为类别和产品的表。类别列有两个类别,但在产品列下,没有数据。我希望所有产品列表都按类别分开。

4

1 回答 1

3

好的..需要更多帮助,现在当我运行代码时,它只显示了一个表,其中类别列按预期显示了两个类别,但产品列没有显示任何数据。

您需要从组中选择产品:

Products = g.Select(p => p).ToList()

看看下面的一些附加属性。

var categories = from s in productlist
                group s by s.category into g
                select new { 
                    Category = g.Key, 
                    Products = g.ToList(),
                    ProductCount = g.Count(),
                    AveragePrice = g.Average(p => p.productprice)
                };
于 2012-06-17T11:14:20.590 回答