Mam listę takiego:Jak mogę wybrać SELECT UNIQUE z LINQ?
Red
Red
Brown
Yellow
Green
Green
Brown
Red
Orange
staram się zrobić SELECT wyjątkowy z LINQ, czyli chcę
Red
Brown
Yellow
Green
Orange
var uniqueColors = from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name;
Potem zmienił to
var uniqueColors = from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name.Distinct();
z bez powodzenia. Pierwszy select
otrzymuje WSZYSTKIE kolory, więc jak mogę go zmodyfikować, aby uzyskać tylko unikalne wartości?
Jeśli istnieje lepszy sposób na skonstruowanie tego zapytania, z przyjemnością przejdziemy tę trasę.
W jaki sposób mogę go edytować, aby móc mieć .OrderBy ("nazwa kolumny"), tj. Alfabetycznie według nazwy koloru, a więc nazwę?
Wciąż otrzymuję komunikat:
Argumenty typu nie można wywnioskować z użytkowania. Spróbuj jawnie sprecyzować argumenty typu.
Dzięki, to jest poprawna odpowiedź. Czy ktoś może wyjaśnić, co dzieje się w parametrach .OrderBy(). Masz nazwę => imię. Czy ta nazwa pochodzi od nazwy kolumny w DB? Ponieważ mamy 'dbo.Color.Name' to po prostu' name => name', które podpowiada mi, że to nie jest nazwa kolumny? Dziwacznie to również sortuje się poprawnie, jeśli po prostu zmienię to na '.OrderBy (a => a)' – baron
Nazwa zmiennej jest nieistotna. To tylko {obiekt przekazany do funkcji} => {obiekt używany do sortowania}. Ponieważ już zrobiliśmy Select, jedyną rzeczą w sortowanym zbiorze są nazwy. –
Dzięki @JamesCurran, twoje rozwiązanie bardzo mi pomogło. – Ron