代码之家  ›  专栏  ›  技术社区  ›  Craig Shearer

C中的LINQ分组#

  •  2
  • Craig Shearer  · 技术社区  · 17 年前

    我很困惑。我从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); 
    } 
    
    1 回复  |  直到 17 年前
        1
  •  7
  •   Christian C. Salvadó    17 年前

    我认为这个查询有一些拼写错误,或者是在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 .