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

 更新时间:2015年06月17日 17:47:48   作者:红薯  
这篇文章主要介绍了C#实现对二维数组排序的方法,实例分析了C#数组遍历与排序的相关技巧,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

本文实例讲述了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#程序设计有所帮助。

相关文章

  • C#实现百分比转小数的方法

    C#实现百分比转小数的方法

    这篇文章主要介绍了C#实现百分比转小数的方法,涉及C#进行数值计算的相关技巧,需要的朋友可以参考下
    2015-06-06
  • 混合语言编程—C#使用原生的Directx和OpenGL绘图的方法

    混合语言编程—C#使用原生的Directx和OpenGL绘图的方法

    本文要说的是混合C#和C/C++语言编程,在C#的Winform和WPF下使用原生的Direct和OpenGL进行绘图
    2013-09-09
  • unity 文件流读取图片与www读取图片的区别介绍

    unity 文件流读取图片与www读取图片的区别介绍

    这篇文章主要介绍了unity 文件流读取图片与www读取图片的对比分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Unity使用ScrollRect制作摇杆

    Unity使用ScrollRect制作摇杆

    这篇文章主要为大家详细介绍了Unity使用ScrollRect制作摇杆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • 详解C#如何实现屏幕放大和取色功能

    详解C#如何实现屏幕放大和取色功能

    这篇文章主要为大家详细介绍了如何利用C#实现屏幕放大和取色功能,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • C#实现图书管理系统

    C#实现图书管理系统

    这篇文章主要为大家详细介绍了C#实现图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 简单介绍C# 中的扩展方法

    简单介绍C# 中的扩展方法

    这篇文章主要介绍了C# 中的扩展方法的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • C#实现简易计算器功能(2)(窗体应用)

    C#实现简易计算器功能(2)(窗体应用)

    这篇文章主要为大家详细介绍了C#实现简易计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • C#中string.Empty和null的区别详解

    C#中string.Empty和null的区别详解

    这篇文章主要介绍了C#中string.Empty和null的区别详解,本文同时讲解了空字符串和Empty的区别以及string.Empty与null的区别,需要的朋友可以参考下
    2015-06-06
  • C#中foreach实现原理详解

    C#中foreach实现原理详解

    这篇文章主要为大家详细介绍了C#中foreach实现原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09

最新评论


http://www.vxiaotou.com