2009-09-16 7 views
0

J'ai les données suivantesLINQ to problème SQl .... S'il vous plaît aider

ProductId Description cost 
12  test  0.0 

12  test  8.8 

12  test  7.9 

27  asdf  9.0 
27  asdf  2.0 
27  asdf  2.0 

Je veux que le résultat suivant

12 test 0.0/test8.8/test 7.9 
27 asdf 9.0/asdf 2.0/ asdf 2.0 

jusqu'à présent je ne pouvais venir avec cette personne ..can me pointer dans la bonne direction

Merci beaucoup

var n = from c in query 
      group new {c} 
      by new 
      { 
        c.productid, 
        c.cost, 
        c.prodescription 
       } 
       into g 

       select new{ 
            g.Key.productid, 
            Products=(g.Key.prodescription) +  g.Key.cost.ToString()), 
           }; 

Répondre

4
var groups = from result in query 
      group result by new { result.ProductId } into g 
      select g; 

foreach(var group in groups) { 
    Console.Write("{0}: ", group.Key.ProductId); 
    Console.WriteLine(String.Join("/", group.Select(p => String.Format("{0}, {1:0.0}", p.Description, p.Cost)).ToArray())); 
} 

Encore mieux serait de fournir une implémentation de Product.ToString le long des lignes de

public override ToString() { 
    return String.Format("{0}, {1:0.0}", this.Description, this.Cost); 
} 

et remplacer le Console.WriteLine ci-dessus par

Console.WriteLine(String.Join("/", group.Select(p => p.ToString()).ToArray())); 
+0

merci beaucoup Jason pour votre réponse .... Cela m'a vraiment aidé ... –