我有一个可以具有相同值的浮点数列表
List<float> l = new List<float>{1, 2, 6, 4, 2, 0};
我想得到索引序列来对列表进行排序,其中索引的编号最小,最后一个索引最大。对于上面的示例,结果为{5, 0, 1, 4, 3, 2}
。对于相同的有价值的数字,顺序并不重要。有办法吗?感谢。
答案 0 :(得分:4)
将元素与其索引配对,对元素进行排序,然后收集索引,如下所示:
var res = l.Select((v, i) => new {v, i})
.OrderBy(p => p.v)
.Select(p => p.i)
.ToList();