繁体   English   中英

LINQ 分组在 C#

[英]LINQ grouping in C#

我很困惑。 我从 Microsoft LINQ 示例站点复制了这段代码,但无法编译。

我想做类似的事情,但它说它无法解决符号 minPrice 和一堆其他错误。 是什么赋予了?

public void Linq84() { 
   List products = GetProductList();

   var categories = 
      from p in products 
      group p by p.Category into g 
      from minPrice = g.Group.Min(p => p.UnitPrice) 
      select new {Category = g.Key, CheapestProducts = g.Group.Where(p => p.UnitPrice == minPrice)};

   ObjectDumper.Write(categories, 1); 
} 

我认为该查询有一些拼写错误,或者是在 Linq 的早期阶段进行的。

我将其重写为:

var categories = from p in products
                 group p by p.Category into g
                   let  minPrice = g.Min(p => p.UnitPrice)
                 select new {
                              Category = g.Key,
                              CheapestProducts = g.Where(p => p.UnitPrice == minPrice)
                            };

顺便说一句,作为很好的学习资源,我强烈推荐你LinqPad这是一个很棒的工具和HookedToLinq

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM