有一个数组
int[] array = new int[]{6,4,10,7,7,9};
和一个数字 8。
我想按最近的数字对 8 左右的数组进行排序。
最近的数字:分别为 9,7,7,10,6,4
因为 9-1 = 8, 7+1 = 8, 7+1 = 8, 10-2 = 8, 6+2 = 8, 4+4 = 8
我怎样才能对这些数字进行排序。任何想法?
var result = array.OrderBy(i => Math.Abs(i - value))
.ThenBy(i => i < value)
.ToArray();
int nearbyNumber = 8;
var query = array.OrderBy(number => Math.Abs(number - nearbyNumber ));
ToArray
如果你真的需要一个数组,你可以打电话。
如果你真的想对数组进行排序,你可以制作一个自定义的 Comparer 对象并使用Array.Sort
,但这需要更多的工作......
var array = new int[] { 6, 4, 10, 7, 7, 9 };
int target = 8;
var values = array.OrderBy(i => Math.Abs(i - target)).ToArray();
编辑我很快就得到了这个答案,然后用一些验证码询问我是否是人类。非常感谢!:)