现在有一个四列的Datatable
第一列为5或6个数字,要将除去最后两个数字之外相等的行&&第三列相同的行的第二列计算平均值,第四列加起来之后生成一个新的行,
把这些新的行存入一个新的Datatable,用LINQ怎么写啊!!
比如下面是部分截图
要求新的Datatable是这样:
930 16.59 B 2080+400+..+2900
930 16.58 S 1000
931 16.59 B 600+400+..+1000
931 16.56 S 1500
不清楚你的具体要求,无非就是aggregate或者groupby
第一列截取保留前三位,然后根据第二列分组求(感觉你这里应该是第三列),然后就是求和sum(第四列)。
var q =from p in db
group p by new
{
p.第二列,
p.第三列
}
into g
select p.第一列.substring(0,3),
new
{
g.key,
g
}
sum(p.第四列)
order by p.第一列.substring(0,3)
var q =from p in db
group p by new
{
p.第二列,
p.第三列
}
into g
select p.第一列.substring(0,3),
new
{
g.key,
g.sum=p.Sum(第四列 => y.第四列)
}
order by p.第一列.substring(0,3)
差不多就是这样没有数据不能保证百分百但是差不多了
可以写多个语句,建立一个需要的结果类,var s=new list<结果类>,
然后在foreach,这个s
手动建立一个Datatable填充了
是不是可以这样?