代码之家  ›  专栏  ›  技术社区  ›  simonalexander2005

使用另一个数组作为索引C#[复制]对数组进行排序

  •  4
  • simonalexander2005  · 技术社区  · 14 年前

    如果我有一个字符数组

    char[] chars = new char[]{'f','a','d','e','c','b'};
    

    另一个整数数组表示排序顺序:

    int[] sortOrder = new int[]{5,1,4,5,3,2};
    

    {'a','b','c','d','e','f'}
    

    我知道我可以通过创建第三个数组来完成,但理想情况下我希望使用LinQ(the.Sort)方法或类似的方法来完成,因为sortOrder数组中可能有重复的值。

    我想我实际上是想对sortOrder数组进行排序(使用sortOrder.sort()很简单),但不知何故,还是要让它对chars数组进行完全相同的排序?

    1 回复  |  直到 14 年前
        1
  •  11
  •   Marc Gravell    14 年前

    有一个超负荷的 Array.Sort 确切地

    Array.Sort(sortOrder, chars);
    

    (请注意,这实际上 二者都 并行数组(即,它对键进行排序,并对目标数组进行相同的交换)