?
各要素のindexによってdataをソートするんだよね?
なんか勘違いしてる気がする。
int[] indexとstring[] strをそれぞれ別々に持ってソートするってことかな?
でindexをソートするとstrもソートされる、と?

つまり
int[] index = {3, 5, 2};
string[] str = {"c", "b", "a};
で
Array.Sort(index)した時にArray.Sort(str)も実行、と。
結果は
index = {2, 3, 5}
str = {"a", "b", "c}
こういう解釈で良いのかな。