2009-03-24 15 views
2

Ich bin verwirrt. Ich habe diesen Code aus den Microsoft LINQ-Beispielen site kopiert, kann ihn aber nicht kompilieren.LINQ Gruppierung in C#

Ich möchte etwas ähnliches tun, aber es sagt, es kann Symbol minPrice und eine Reihe anderer Fehler nicht auflösen. Was gibt?

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); 
} 
+0

Man, diese MSDN-Site ist voller Bugs. Der GetProductList() Code, den sie haben, ist total durcheinander! –

Antwort

7

Ich denke, dass die Abfrage einige Tippfehler hat, oder in den frühen Phasen von Linq gemacht wurde.

Ich werde es wie dieses umschreiben:

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) 
          }; 

BTW, wie gute Lernressourcen ich Ihnen LinqPad sehr empfehlen, das ist ein großes Werkzeug und HookedToLinq.

+0

Danke - sieht wie eine sehr nützliche Seite aus. –