Как выполнить группировку в LINQ и получить объект Iqueryable или Custom Class? - PullRequest
4 голосов
/ 15 мая 2010

Вот мой запрос -

var data = Goaldata.GroupBy(c => c.GoalId).ToList();

Это возвращает объект Igrouping, и мне нужен объект Iqueryable, к которому я могу напрямую запросить данные, чтобы получить данные, в то время как в этом случае я должен выполнить цикл с помощью foreach () и затем получить данные. Есть ли другой способ группировки в LINQ, который возвращает непосредственно в виде списка Iqueryable или списка, аналогичного тому, что происходит для order by в LINQ.

Ответы [ 3 ]

9 голосов
/ 15 мая 2010

Самый простой способ, вероятно,

var data = Goaldata.GroupBy(c => c.GoalId).SelectMany(c => c).ToList();

В ОО-смысле они на самом деле не сгруппированы, а упорядочены вместе с группами.

5 голосов
/ 15 мая 2010

Хотя принятый ответ верен, он кажется излишне сложным.Предполагая, что GoalId является int, вы можете просто использовать OrderBy:

var data = Goaldata.OrderBy(c => c.GoalId).ToList();
0 голосов
/ 15 мая 2010

Или .GroupBy(c => c.GoalId).AsQueryable()...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...