Próbuję użyć LINQ (do EF), aby uzyskać listę DISTINCT, a następnie ją posortować. Wszystkie znalezione przykłady sortują wynik na podstawie wartości DISTINCT. Ale chcę posortować to na innym polu.LINQ: Distinct and Orderby
Przykład: Tabela z 2 polami (canvasSize i canvasLength);
var sizes = (from s in ent.competitors
select s.canvasSize).Distinct().OrderBy(x => x);
Wszystkie znalezione przykłady dają tego rodzaju odpowiedź. Ale sortuje według canvasSize, podczas gdy ja chcę sortować według canvasLength.
utknąłem ... Wszelkie wskazówki są bardzo mile widziane ...
Per J. Skeet> Dodatkowe informacje:
company canvasSize canvasLength
abc 8x10 8
d 8x10 8
e 10x10 10
f 10x10 10
g 40x40 40
chciałbym go mieć odrębny na canvasSize. Problem polega na tym, że gdy sortowane, to wyniki w tej kolejności:
10x10
40x40
8x10
chciałbym ten sam zestaw wyników, ale klasyfikowane za pomocą canvasLength więc wynik jest:
8x10
10x10
40x40
No co chcesz go mieć odrębny * od *? Byłoby bardzo pomocne, gdybyś mógł podać przykładowe dane i oczekiwane rezultaty. –
A więc, czy chcesz mieć w wynikach zarówno canvasSize i canvasLength, posortowane według canvasLength? –
Ile danych masz do czynienia? Ścieżka najmniejszego oporu polega na wykonaniu porządku na kolumnie A na poziomie DB, wybierz dwie kolumny i przenieś je do pamięci, a następnie wybierz swoją pojedynczą kolumnę B i użyj odmiennie po stronie pamięci. Łatwo to napisać. Może jednak nie skalować się, jeśli masz dużo danych. (To zakłada, że baza danych nie gwarantuje zachowania porządku przy użyciu Distinct, a jeśli tak, to trzymaj się DB.) –