欢迎来到山村网

C#实现对二维数组排序的方法

2019-03-02 14:08:52浏览:695 来源:山村网   
核心摘要:本文实例讲述了C#实现对二维数组排序的方法。分享给大家供大家参考。具体实现方法如下:? 123456789101112131415161718192021222

本文实例讲述了C#实现对二维数组排序的方法。分享给大家供大家参考。具体实现方法如下:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 /// <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#程序设计有所帮助。

(责任编辑:豆豆)
下一篇:

Python合并两个字典的常用方法与效率比较

上一篇:

C#基础语法:可空类型详解

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com