Como posso agrupar com várias colunas usando lambda?
Eu vi exemplos de como fazer isso usando o linq to entity, mas estou procurando pelo formulário lambda.
c#
.net
entity-framework
lambda
Naor
fonte
fonte
GetHashCode
e substituições apropriadosEquals
. Eles foram projetados para exatamente esse tipo de caso de uso.GroupBy
retorna umIEnumerable<IGrouping<TKey, TSource>>
que é essencialmente umIEnumerable<IEnumerable<TSource>>
com umaKey
propriedade no enumerável interno. Isso ajuda você a obter o "IEnumerable" dos itens do grupo?se sua mesa é assim
fonte
Além de aduchis resposta acima - se você precisa então de filtro com base naqueles grupo de chaves, você pode definir uma classe para embrulhar as muitas chaves.
Onde CustomerGroupingKey pega as chaves de grupo:
fonte
fonte
Eu vim com uma mistura de definir uma classe como a resposta de David, mas não exigindo uma classe Where para acompanhá-la. Parece algo como:
Onde
resultRecords
está minha lista inicial que estou agrupando e é aList<ResultCsvImport>
. Observe que a ideia aqui é que, eu estou agrupando por 3 colunas, IdObj1 e IdObj2 e IdObj3fonte