我很困惑我从Microsoft LINQ示例site复制了此代码,但无法对其进行编译。

我想做类似的事情,但是它说它不能解决符号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

关于c# - C#中的LINQ分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/676184/

10-12 00:27
查看更多