我有一个可以具有相同值的浮点数列表
List<float> l = new List<float>{1, 2, 6, 4, 2, 0};
我想让索引序列对列表进行排序,其中最小数字的索引在前,最大数字的索引在最后。对于上面的示例,结果{5, 0, 1, 4, 3, 2}
。对于相同的值数字,顺序无关紧要。有什么办法吗?谢谢。
将元素与其索引配对,对元素上的对进行排序,然后收获索引,如下所示:
var res = l.Select((v, i) => new {v, i})
.OrderBy(p => p.v)
.Select(p => p.i)
.ToList();
演示。