c# 二维数组排序

有一个5*100的int数组,如何以第五列为基准从小到大排序,其余列随第五列随动

第1个回答  2009-09-12
终于想出来了!测试一下吧:

static void Main(string[] args)
{
Random random = new Random();
int[,] Tarray = new int[5, 100];
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 100; j++)
{
Tarray[i, j] = random.Next(0,500);
}
}
Program pro = new Program();
pro.Sort(Tarray);
}
public int[,] Sort(int[,] Tarray)
{
int[,] sortTarray=Tarray;
int[] arr = new int[500];
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 100; j++)
{
arr[i * 100 + j] = Tarray[i, j];//把二维数组变成一维数组
}
}
for (int i = 0; i < 5; i++)
Array.Sort(arr, i * 100, 100);//从0到100,100到200,200到300这样分别排序

for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 100; j++)
{
sortTarray[i, j] = arr[i * 100 + j];//将一位数组再变成二维数组
}
}
return sortTarray;
}本回答被提问者采纳