LINQ для лямбда-выражения - PullRequest
       3

LINQ для лямбда-выражения

2 голосов
/ 29 августа 2011

Я пытаюсь преобразовать приведенный ниже код в лямбда-выражение

from b in bookResults
group b by new { b.Title1, b.Pubs_id, b.Notes } into g
select new XElement("book",
new XAttribute("pub_id", g.Key.Pubs_id), new XAttribute("note", g.Key.Notes),
new XElement("Title", g.Key.Title1),
from bk in g
select new XElement("Name", new XAttribute("au_id", bk.Au_id), bk.Name))));

лямбда-выражение

bookResults.GroupBy(g => new { g.Title1, g.Pubs_id, g.Notes })
           .Select(group => new XElement("book", 
                                         new XAttribute("pub_id",
                                                        group.Key.Pubs_id),
                                         new XAttribute("note", group.Key.Notes),
                                         new XElement("Title", group.Key.Title1)))
                           **.Select(bk => new XElement("Name",
                                                        new XAttribute("au_id",
                                                                       bk.Au_id),
                                                        bk.Name)**)));

Моя проблема связана со вторым выбором, поскольку я не знаю, как связать его с
(от БК в г)

1 Ответ

1 голос
/ 29 августа 2011

Эта часть является просто очередным обычным запросом, начиная с параметра лямбды предыдущего выбора:

bookResults.GroupBy(g => new { g.Title1, g.Pubs_id, g.Notes })
     .Select(group => new XElement("book", 
                 new XAttribute("pub_id", group.Key.Pubs_id),
                 new XAttribute("note", group.Key.Notes),
                 new XElement("Title", group.Key.Title1)),
                 // "from bk in g select" becomes "g.Select(bk =>"
                 // but here you're using group as the parameter name
                 group.Select(bk => new XElement("Name",
                      new XAttribute("au_id", bk.Au_id), bk.Name))));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...