首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数组对最近的数字进行排序

使用数组对最近的数字进行排序
EN

Stack Overflow用户
提问于 2012-04-13 04:52:25
回答 3查看 519关注 0票数 3

有一个数组

代码语言:javascript
复制
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

如何对这些数字进行排序。有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-13 04:56:16

代码语言:javascript
复制
var result = array.OrderBy(i => Math.Abs(i - value))
             .ThenBy(i => i < value)
             .ToArray();
票数 4
EN

Stack Overflow用户

发布于 2012-04-13 04:56:24

代码语言:javascript
复制
int nearbyNumber = 8;
var query = array.OrderBy(number => Math.Abs(number - nearbyNumber ));

如果确实需要数组,可以调用ToArray

如果你真的想在原地对数组进行排序,你可以创建一个自定义的比较器对象并使用Array.Sort,但这是更多的工作……

票数 2
EN

Stack Overflow用户

发布于 2012-04-13 04:58:15

代码语言:javascript
复制
var array = new int[] { 6, 4, 10, 7, 7, 9 };
int target = 8;
var values = array.OrderBy(i => Math.Abs(i - target)).ToArray();

编辑我很快就有了答案,然后一些验证码问我是不是人类,这让我停了下来。非常感谢!:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10131641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档