什么是
.OrderBy(x => x == somevalue)
做什么?它将一些值元素排序到最后。但为什么?
代码示例:
var arr = new int[] { 1, 2, 3 };
var arr2 = arr.OrderBy(x => x == 2).ToArray();
// arr2 --> 1, 3, 2
答案 0 :(得分:17)
您按bool
排序,因为x == 2
是bool
值true
x == 2
,否则false
。如果bool
(bool
实施IComparable<bool>
)
https://msdn.microsoft.com/en-us/library/kf07t5s5(v=vs.110).aspx
false < true
这就是为什么
OrderBy(x => x == 2)
表示“不的第一个值等于2
然后2
s”。
{1, 2, 3} -> {1, 3, 2}
修改:最后,OrderBy
是稳定排序,这就是1, ..., 3
(1
3
之前{3, 1, 2}
的原因。 1}})已被保留(如果你使用不稳定的排序算法对数组进行排序,比如快速排序,你可以得到hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
hibernate.hbm2ddl.auto=validate
)