日期:2014-05-17  浏览次数:20971 次

Linq中获取Sum
strValue = (from p in dt.AsEnumerable() select p.Field<double>(fieldName)).Sum().ToString();

其中 select p.Field<double> 必须指定 fieldName 的字段类型,但fieldName可能是int,或者其它数值型

这样写就会出错了

有没有办法来判断的?

------最佳解决方案--------------------
封装成泛型参数
private void Foo<T>()
{
strValue = (from p in dt.AsEnumerable() select p.Field<T>(fieldName)).Sum().ToString();
}
------其他解决方案--------------------
strValue =dt.Compute("Sum(fieldName)","").ToString();
------其他解决方案--------------------
谢谢两位。。。