本文實例講述了C#實現對二維數組排序的方法。分享給大家供大家參考。具體實現方法如下:
/// <summary>/// A generic routine to sort a two dimensional array of a specified type based on the specified column./// </summary>/// <param name="array">The array to sort.</param>/// <param name="sortCol">The index of the column to sort.</param>/// <param name="order">Specify "DESC" or "DESCENDING" for a descending sort otherwise/// leave blank or specify "ASC" or "ASCENDING".</param>/// <remarks>The original array is sorted in place.</remarks>/// <see cref="http://stackoverflow.com/questions/232395/how-do-i-sort-a-two-dimensional-array-in-c"/>private static void Sort<T>(T[,] array, int sortCol, string order){  int colCount = array.GetLength(1), rowCount = array.GetLength(0);  if (sortCol >= colCount || sortCol < 0)    throw new System.ArgumentOutOfRangeException("sortCol", "The column to sort on must be contained within the array bounds.");  DataTable dt = new DataTable();  // Name the columns with the second dimension index values, e.g., "0", "1", etc.  for (int col = 0; col < colCount; col++)  {    DataColumn dc = new DataColumn(col.ToString(), typeof(T));    dt.Columns.Add(dc);  }  // Load data into the data table:  for (int rowindex = 0; rowindex < rowCount; rowindex++)  {    DataRow rowData = dt.NewRow();    for (int col = 0; col < colCount; col++)      rowData[col] = array[rowindex, col];    dt.Rows.Add(rowData);  }  // Sort by using the column index = name + an optional order:  DataRow[] rows = dt.Select("", sortCol.ToString() + " " + order);  for (int row = 0; row <= rows.GetUpperBound(0); row++)  {    DataRow dr = rows[row];    for (int col = 0; col < colCount; col++)    {      array[row, col] = (T)dr[col];    }  }  dt.Dispose();}希望本文所述對大家的C#程序設計有所幫助。
新聞熱點
疑難解答