Mam zapytanie linq, które chcę uporządkować według f.bar, który jest łańcuchem, ale chcę też zamówić je najpierw według f.foo, które jest polem boolowskim. Jak zapytanie poniżej.
(from f in foo
orderby f.foo, f.bar
select f)
Chociaż to kompiluje, nie działa zgodnie z oczekiwaniami. Po prostu rozkazuje f.bar ignorując pole boolowskie.
Jestem głupi, wiem, ale co muszę zrobić, aby uzyskać takie zachowanie?
Dzięki
false
(0) znajduje się przedtrue
(1) w rosnącej (domyślnej) kolejności sortowania.data.OrderBy(d => d.x).ThenBy(d => d.y)
Chciałem to zrobić i wygląda na to, że jest to coś bez ukrytego zamówienia. Zrobiłem następujące, aby być bardziej wyraźnym:
sortować coś od prawdziwego do fałszywego.
źródło
true
oznaczaa single bit set to 1
? Dla mnie prawdatrue > false
jest tak oczywista, jak to tylko możliwe.true > false
nie jest powszechnie znana, podczas gdy1 > 0
jest..OrderBy(e => e.SomeFlag == true)
byłoby równoważne.OrderBy(e => e.SomeFlag)
natomiast.OrderBy(e => e.SomeFlag ? 0 : 1)
jest odpowiednikiem.OrderByDescending(e => e.SomeFlag)
. Pierwsze dwa oznaczają fałsz przed fałszem, pozostałe dwa przed fałszem.Spróbuj wykonać następujący kod, jeśli otrzymujesz list orderby true.
źródło
W celu dokładniejszego określenia używanej kolejności.
źródło