C#實(shí)現(xiàn)對二維數(shù)組排序的方法
本文實(shí)例講述了C#實(shí)現(xiàn)對二維數(shù)組排序的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
/// <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#程序設(shè)計(jì)有所幫助。
相關(guān)文章
WPF實(shí)現(xiàn)動(dòng)畫效果的入門教程
WPF是一種用于創(chuàng)建Windows客戶端應(yīng)用程序的UI框架,它讓我們能夠創(chuàng)建豐富的圖形界面,包括各種各樣的動(dòng)畫效果,下面我們就來看看如何利用wpf實(shí)現(xiàn)簡單的動(dòng)畫效果吧2023-09-09
C#使用Twain協(xié)議開發(fā)一個(gè)高掃儀對接功能
這篇文章主要為大家詳細(xì)介紹了C#如何使用Twain協(xié)議開發(fā)一個(gè)高掃儀對接功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02
詳解C#中通過委托來實(shí)現(xiàn)回調(diào)函數(shù)功能的方法
這篇文章主要介紹了C#中通過委托來實(shí)現(xiàn)回調(diào)函數(shù)功能的方法,文中舉了一個(gè)典型的多線程回調(diào)程序?qū)嵗?需要的朋友可以參考下2016-04-04
Unity實(shí)現(xiàn)物體運(yùn)動(dòng)時(shí)畫出軌跡
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)物體運(yùn)動(dòng)時(shí)畫出軌跡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
積累Visual Studio 常用快捷鍵的動(dòng)畫演示
在代碼開發(fā)過程中,頻繁的使用鍵盤、鼠標(biāo)操作非常麻煩,影響程序的開發(fā)效率。如何操作能用鍵盤來操作,那就節(jié)省時(shí)間了。下面小編把我平時(shí)積累的有關(guān)visul studio 常用快捷鍵的動(dòng)畫演示分享給大家,僅供大家參考2015-10-10
DevExpress獲取TreeList可視區(qū)域節(jié)點(diǎn)集合的實(shí)現(xiàn)方法
這篇文章主要介紹了DevExpress獲取TreeList可視區(qū)域節(jié)點(diǎn)集合的實(shí)現(xiàn)方法,有一定實(shí)用價(jià)值,需要的朋友可以參考下2014-08-08
Unity3D使用陀螺儀控制節(jié)點(diǎn)旋轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了Unity3D使用陀螺儀控制節(jié)點(diǎn)旋轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11

