对数字进行排序,得到c中的秩
本文关键字:得到 数字 排序 | 更新日期: 2023-09-27 18:27:02
如何在c#
中对double[]
数组进行排序并获得秩。例如,考虑分拣
[4 5 3 1 6]
按降序排列。
我想将每个元素映射到排序列表中的索引。例如,如果我对列表进行排序,我会得到[6 5 4 3 2 1],所以6的索引是1,5的索引是2,依此类推
[3 2 4 5 1]
我搜索了很多,但没有找到
使用Linq:
private static void Main(string[] args)
{
var ints = new[] { 4, 5, 3, 1, 6 };
foreach (var item in ints.Select((x, i)=>new { OldIndex = i, Value = x, NewIndex = -1})
.OrderByDescending(x=>x.Value)
.Select((x, i) => new { OldIndex = x.OldIndex, Value = x.Value, NewIndex = i + 1})
.OrderBy(x=>x.OldIndex))
Console.Write(item.NewIndex + " ");
}