LInq to SQl проблема .... Пожалуйста, помогите - PullRequest
0 голосов
/ 16 сентября 2009

У меня есть следующие данные

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

Я хочу следующий результат

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

Пока я могу придумать только это ... кто-то может указать мне правильное направление

Большое спасибо

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

1 Ответ

4 голосов
/ 16 сентября 2009
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()));
}

Еще лучше было бы обеспечить реализацию Product.ToString в соответствии с

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

и замените Console.WriteLine выше на

Console.WriteLine(String.Join("/", group.Select(p => p.ToString()).ToArray()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...