Как я могу сгруппировать по нескольким столбцам с помощью лямбда?
Я видел примеры того, как это сделать с помощью linq to entity, но я ищу лямбда-форму.
c#
.net
entity-framework
lambda
Naor
источник
источник
GetHashCode
иEquals
методами. Они были разработаны именно для такого случая использования.GroupBy
возвращаетIEnumerable<IGrouping<TKey, TSource>>
которая по существуIEnumerable<IEnumerable<TSource>>
сKey
собственностью на внутреннем Enumerable. Это поможет вам получить "IEnumerable" элементов группы?если ваша таблица такая
источник
В дополнение к ответу aduchis выше - если вам затем нужно отфильтровать на основе этой группы по ключам, вы можете определить класс для обертывания многих ключей.
Где CustomerGroupingKey берет ключи группы:
источник
источник
Я придумал сочетание определения класса, такого как ответ Дэвида, но не требуя, чтобы класс Where шел с ним. Это выглядит примерно так:
Где
resultRecords
мой первоначальный список, который я группирую, и это аList<ResultCsvImport>
. Обратите внимание, что идея заключается в том, что я группирую по 3 столбцам: IdObj1, IdObj2 и IdObj3.источник