配列があります
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();
編集私はこの答えを非常に速く持っていました、そしてそれからそれは人間であるかどうかを尋ねるいくつかのキャプチャで私を止めました。どうもありがとうございました!:)