C#で配列のソートをする方法としてArray.Sortがある.
ただし,引数に与えた配列は順番が破壊されてしまう.
通常は,以下のようにするが,これだと元のtestは書き換えられる.
Int32[] test = new Int32[5];
for (int i = 0; i < test.Length; i++)
{
test[i] = test.Length - i;
}
Array.Sort(test);
もとの配列の中でのインデックスを記録しておきたい場合,test1にインデックスを記録しておき,Array.Sortに二つ配列を渡してやると,test1はソート前の配列での順番を表すことになる.
Int32[] test1 = new Int32[5];
Int32[] test2 = new Int32[5];
Random rand = new Random(100);
for (int i = 0; i < test1.Length; i++)
{
test1[i] = i;
test2[i] = rand.Next();
}
Array.Sort(test2, test1);

