Эта задача помогла мне понять, что именно возвращает Linq Group By (и насколько распространен синтаксис Linq с Group By).
Поскольку LinqPad
четко показывает Group By возвращает List
из Groups
.Group
- это очень простой класс, который имеет только одно свойство : Ключ
As этот ответ утверждает, из определения IGrouping (IGrouping<out TKey, out TElement> : IEnumerable<TElement>, IEnumerable
), что only способ доступа к содержимому подгрупп - это итерация по элементам (foreach, другая группа,выберите, ecc).
Здесь показана синтаксическая формулировка Linq цепочки методов.
А здесьисходный код на Fiddle
Но давайте продолжим пытаться найти другое решение:
Что мы обычно делаем в SQL , когда мы делаем группу К относится список всех столбцов , но сгруппированных. С Linq отличается .. он по-прежнему возвращает ВСЕ столбцы.
В этом примере мы начали с набора данных с 3 «столбцами» {IDMacroTab, IDTab, IDSlot}.Мы сгруппировали по первому столбцу, но Linq вернул бы весь набор данных, если мы явно не скажем ему ..