gpt4 book ai didi

c# - OrderBy 的特例

转载 作者:太空狗 更新时间:2023-10-29 22:09:01 25 4
gpt4 key购买 nike

什么是

.OrderBy(x => x == somevalue)

做吗?它将一些值元素排序到最后。但是为什么

代码示例:

var arr = new int[] { 1, 2, 3 };
var arr2 = arr.OrderBy(x => x == 2).ToArray();
// arr2 --> 1, 3, 2

最佳答案

您按 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} 作为结果)

关于c# - OrderBy 的特例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49607109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com