求一个网上不知道怎么问的算法
我是用的C#语言,比如我有N个DataTable,要求这N个DataTable同一行同一列去掉最大值和最小值求平均值,然后应该得到一个新的DataTable。描述起来感觉就那么几个字,不过用代码写起来不知道怎么处理了。求高手回答。小弟把所有分献上了。
[解决办法]
for(int i=0;i<N;i++)
{
//遍历table
//取行列值,放到数组中,或者放到new DataTable中,不会去看帮助,当然这里可以对最大值最小值处理
}
[解决办法]
写一个高效的算法确实要废些脑筋。
[解决办法]
评分系统吧。 1楼的方法可行
[解决办法]
如果表结构一样的话,先合并在一个表中再来处理应该更快一些
[解决办法]
那你先用冒泡 去除 最大相应的最小、、然后、、就然后了
[解决办法]
那你用一个分隔符、、把要分开的数据结尾用个字符割断、、你读的时候 把字符跳过 不读、、
[解决办法]
for(int i=0;i<N;i++)
{
//遍历table
//取行列值,放到数组中,或者放到new DataTable中,不会去看帮助,当然这里可以对最大值最小值处理
}
[解决办法]
newDt;//new 一个DataTable
for (int j = 0; j < t1.Rows.Count; j++)// 遍历行数
{
for (int k = 0; k < t1.Columns.Count; k++)//遍历列数
{
//获取N个DataTable中同行同列的值集合
var currentCellValues = new Array[N];
for (var i = 0; i < N; i++)
{
currentCellValues[i] = t1.Columns;
}
//去掉最大和最小值,再去平均(建议linQ)
var currentCellValue = ....
newDT[j,k] = currentCellValue ;
}
}
********注意空值判断哈。
[解决办法]
linq,先把这些表join起来,然后select出平均数。
[解决办法]
先遍历N个table,取行列值,放到集合中。
然后New一个datatable,把集合的数据绑定上。
结束。
C#也可以直接datatable.Select
例如:
DataTable.Select("ID=XXX");