C#实现对二维数组排序的方法
本文实例讲述了C#实现对二维数组排序的方法。分享给大家供大家参考。具体实现方法如下:
///<summary>
///Agenericroutinetosortatwodimensionalarrayofaspecifiedtypebasedonthespecifiedcolumn.
///</summary>
///<paramname="array">Thearraytosort.</param>
///<paramname="sortCol">Theindexofthecolumntosort.</param>
///<paramname="order">Specify"DESC"or"DESCENDING"foradescendingsortotherwise
///leaveblankorspecify"ASC"or"ASCENDING".</param>
///<remarks>Theoriginalarrayissortedinplace.</remarks>
///<seecref="http://stackoverflow.com/questions/232395/how-do-i-sort-a-two-dimensional-array-in-c"/>
privatestaticvoidSort<T>(T[,]array,intsortCol,stringorder)
{
intcolCount=array.GetLength(1),rowCount=array.GetLength(0);
if(sortCol>=colCount||sortCol<0)
thrownewSystem.ArgumentOutOfRangeException("sortCol","Thecolumntosortonmustbecontainedwithinthearraybounds.");
DataTabledt=newDataTable();
//Namethecolumnswiththeseconddimensionindexvalues,e.g.,"0","1",etc.
for(intcol=0;col<colCount;col++)
{
DataColumndc=newDataColumn(col.ToString(),typeof(T));
dt.Columns.Add(dc);
}
//Loaddataintothedatatable:
for(introwindex=0;rowindex<rowCount;rowindex++)
{
DataRowrowData=dt.NewRow();
for(intcol=0;col<colCount;col++)
rowData[col]=array[rowindex,col];
dt.Rows.Add(rowData);
}
//Sortbyusingthecolumnindex=name+anoptionalorder:
DataRow[]rows=dt.Select("",sortCol.ToString()+""+order);
for(introw=0;row<=rows.GetUpperBound(0);row++)
{
DataRowdr=rows[row];
for(intcol=0;col<colCount;col++)
{
array[row,col]=(T)dr[col];
}
}
dt.Dispose();
}
希望本文所述对大家的C#程序设计有所帮助。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下