2010-07-02 25 views
4

所以,如果我有個字符順序使用另一個數組索引C#

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

的陣列和另一個整數數組,表示排序順序是什麼樣的數組:

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

我怎麼可能對chars數組中的數據進行排序,使用sortOrder數組中的值來確定順序?在上面的例子中,排序後的數組看起來像

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

(即「d」移動到位置4,「a」到位置1,等。當重複5,順序無關緊要)

我知道我可以通過創建第三個數組來完成,但理想情況下我希望使用LinQ(.Sort)方法或類似方法來完成它,因爲sortOrder數組中可能有重複的值。

我想有效地我想排序sortOrder數組(很容易使用sortOrder.Sort()),但然後讓它排序與完全相同的變化的字符數組,不知何故?

+0

如果您添加了示例輸出,它將有所幫助。對於上面列出的數組,字符的排序數組應該是什麼樣子? – 2010-07-02 14:39:17

回答

11

有,做正是Array.Sort的重載...

Array.Sort(sortOrder, chars); 

(注意,這實際上是在並行排序陣列 - 即它排序鍵,並作出了同樣的掉期交易到目標陣列)

+0

優秀 - 謝謝! – simonalexander2005 2010-07-06 07:21:46

相關問題