所以,如果我有一个字符数组
char[] chars = new char[]{'f','a','d','e','c','b'};
Run Code Online (Sandbox Code Playgroud)
和另一个整数数组,说明排序顺序是什么:
int[] sortOrder = new int[]{5,1,4,5,3,2};
Run Code Online (Sandbox Code Playgroud)
我怎样才能对chars数组中的数据进行排序,使用sortOrder数组中的值来确定顺序?在上面的示例中,排序的数组看起来像
{'a','b','c','d','e','f'}
Run Code Online (Sandbox Code Playgroud)
('d'移动到位置4,'a'移动到位置1,等等.重复5,顺序无关紧要.)
我知道我可以通过创建第三个数组来实现,但理想情况下我想使用LinQ(.Sort)方法或类似的方法来实现它,因为sortOrder数组中可能存在重复的值.
我想我实际上想要对sortOrder数组进行排序(使用sortOrder.Sort()很容易),但是然后让它以不同的方式对具有完全相同变化的字符数组进行排序?
Mar*_*ell 11
有过载Array.Sort,它究竟是...
Array.Sort(sortOrder, chars);
Run Code Online (Sandbox Code Playgroud)
(请注意,这实际上是并行排列两个数组 - 即它对键进行排序,并对目标数组进行相同的交换)
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |