У меня есть запрос linq, который я хочу упорядочить по f.bar, который является строкой, но я также хочу сначала упорядочить его по f.foo, которое является логическим полем. Как и запрос ниже.
(from f in foo
orderby f.foo, f.bar
select f)
Хотя это компилируется, он работает не так, как ожидалось. Он просто приказывает f.bar игнорировать логическое поле.
Я дурак, я знаю, но что мне нужно сделать, чтобы добиться такого поведения?
Спасибо
false
(0) стоит передtrue
(1) в порядке сортировки по возрастанию (по умолчанию).data.OrderBy(d => d.x).ThenBy(d => d.y)
Просто хотел это сделать, и это похоже на что-то без неявного упорядочивания. Для большей ясности я сделал следующее:
отсортировать что-то истинное и ложное.
источник
true
означает логическое значениеa single bit set to 1
? Для меня истинаtrue > false
настолько очевидна, насколько это возможно.true > false
не общеизвестно, тогда как1 > 0
есть..OrderBy(e => e.SomeFlag == true)
было бы эквивалентно.OrderBy(e => e.SomeFlag)
тогда, когда.OrderBy(e => e.SomeFlag ? 0 : 1)
это эквивалент.OrderByDescending(e => e.SomeFlag)
. Первые два сортируют ложь перед истиной, два других сортируют истину перед ложью.Пожалуйста, попробуйте следующий код, если вы получили список заказов по истине.
источник
Для более точного определения используемого порядка.
источник