Jak mogę grupować według wielu kolumn przy użyciu lambda?
Widziałem przykłady, jak to zrobić za pomocą linq do encji, ale szukam formy lambda.
c#
.net
entity-framework
lambda
Naor
źródło
źródło
GetHashCode
&Equals
metodami. Zostały zaprojektowane dla dokładnie tego rodzaju przypadków użycia.GroupBy
zwraca,IEnumerable<IGrouping<TKey, TSource>>
który jest zasadniczo anIEnumerable<IEnumerable<TSource>>
zKey
właściwością wewnętrznego wyliczenia. Czy to pomoże Ci uzyskać „IEnumerable” elementów grupy?jeśli twój stół jest taki
źródło
W nawiązaniu do powyższej odpowiedzi aduchis - jeśli następnie potrzebujesz filtrować w oparciu o te grupy według kluczy, możesz zdefiniować klasę, aby opakować wiele kluczy.
Gdzie CustomerGroupingKey bierze klucze grupowe:
źródło
źródło
Wymyśliłem kombinację definiowania klasy, takiej jak odpowiedź Davida, ale nie wymagającej klasy Where, aby z nią iść. Wygląda to mniej więcej tak:
Gdzie
resultRecords
jest moja początkowa lista, którą grupuję, a toList<ResultCsvImport>
. Zwróć uwagę, że chodzi o to, że grupuję według 3 kolumn, IdObj1 i IdObj2 i IdObj3źródło