搞了一下对double型二维数组排序,用DataTable来实现
直接使用数组的Sort方法估计更有效率,后面用到再试着弄
#region double_Array[,] 排序方法
/*
用途:对Double类型的 2维数组,根据第二列进行升降排序
范例:
int saa = 0;
double[,] testArr = new double[6, 2];
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 2; j++)
{
testArr[i, j] = saa;
saa += 1;
}
}
testArr[2, 0] = 99;
testArr[2, 1] = 55;
Mdb_Data.Sort_doubleArray(ref testArr, "theNumber_showCount DESC");
注意:
1、Double二维数组,第二个维度一定是0、1两个列,绝对不能超过1,因为此方法我只是为了:
例如 双色球0~33个数字,每个数字都出现了若干次,请降序排列
2、将此方法的第二个字符串型参数中的 DESC 改成 ASC 即可实现升序排列
3、注意此方法结尾部分的一个DataRow[]定义
DataRow[] foundRows;//注意这个Row定义 返回二维的Row数组,可通过foundRows[i][0]来访问
4、如果下次需要对数组的列或者其他进行改动:
column的添加通过for来添加
column.ColumnName = "whatNumber_in_Loto";<--Name通过数组的方式来命名
"whatNumber_in_Loto > -90000"这个参数需要改写成全部行的条件
row的赋值也必须改成for循环来根据列的数组名称来赋值
*/
//----------------------------------------------------------------------//|
public void Sort_doubleArray(ref double[,] sort_Double_Arr, string sortExpression)
{ //|
DataSet DataSet_sortTable_in_this = new DataSet(); //|
DataTable sortTable_Instantiated = new DataTable("sortTable_Name"); //|
DataColumn column; //|
DataRow row; //|
// //|
column = new DataColumn(); //|
column.DataType = System.Type.GetType("System.Double"); //|
column.ColumnName = "whatNumber_in_Loto"; //|
column.ReadOnly = false; //|
// Add the Column to the DataColumnCollection. //|
sortTable_Instantiated.Columns.Add(column); //|
// //|
// Create second column. //|
column = new DataColumn(); //|
column.DataType = System.Type.GetType("System.Double"); //|
column.ColumnName = "theNumber_showCount"; //|
column.AutoIncrement = false; //|
column.ReadOnly = false; //|
column.Unique = false; //|
// //|
sortTable_Instantiated.Columns.Add(column); //|
// //|
for (int ids = 0; ids < sort_Double_Arr.GetLength(0); ids++) //|
{ //|
row = sortTable_Instantiated.NewRow(); //|
row["whatNumber_in_Loto"] = sort_Double_Arr[ids, 0]; //|
row["theNumber_showCount"] = sort_Double_Arr[ids, 1]; //|
sortTable_Instantiated.Rows.Add(row); //|
} //|
// //|
DataRow[] foundRows;//注意这个DataRow[]的数组定义,一般定义都不带括号,这个返回二维的Row数组,可通过foundRows[i行][0]来访问
// //|
foundRows = sortTable_Instantiated.Select("whatNumber_in_Loto > -90000", sortExpression);//为什么是-90000,因为一般的数字都是从0开始到正数去,选择-90000主要是不希望有负数时候不能使用此方法
for (int ifr = 0; ifr < foundRows.Length; ifr++) //|
{ //|
sort_Double_Arr[ifr, 0] = Convert.ToDouble(foundRows[ifr][0]); //|
sort_Double_Arr[ifr, 1] = Convert.ToDouble(foundRows[ifr][1]); //|
} //|
// //|
foundRows = sortTable_Instantiated.Select("whatNumber_in_Loto = -90000", sortExpression);//清空foundRows
DataSet_sortTable_in_this.Clear();//清空DataSet //|
}// <--Sort_doubleArray()方法 End //|
//----------------------------------------------------------------------//|
#endregion
...全文
相关推荐
学习DataTable的例子
学习DataTable的例子
如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总
主要介绍了如何使用LinQ To Object把数组或DataTable中的数据进行向上汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
PCA(主成分分析)winform实现
为了方便用户快速方便的使用C#实现PCA算法并直观的得到结果,将该算法的实现使用Winform实现。输入矩阵数据时,请使用文档中相同的格式输入矩阵。
repeater控件使用
关于repeater的使用,包含分页,删除行。熟练使用
ArcGIS Engine +C# 编程教程
ArcGIS Engine +C# 编程教程


