首页 > 解决方案 > 如何解决 C# linq 中的转换数据类型错误

问题描述

我尝试对我的 excel 数据进行统计,但我的代码中的这一行有错误

ProGroup.Sum(r => r.Field<string>("Time"))

时间是我的 excel 数据中的字符串格式,但 eclipse 不接受它并向我显示一条错误消息

Can't implicitly convert type "string" to "long"

请问我该如何纠正?我试过了

Convert.ToDecimal(ProGroup.Sum(r => r.Field<string>("Timmar")))

但它也向我显示了一个错误。

 var data = from r in dt.AsEnumerable()
            group r by r.Field<string>("Project") into ProGroup
            let SumTime = ProGroup.Sum(r => r.Field<string>("Time"))
            select new
            {
                Projekt = ProGroup.Key,
                Sum = SumTime
            };

标签: c#linq

解决方案


您需要转换每个项目

...
let SumTime = ProGroup.Sum(r => Convert.ToDecimal(r.Field<string>("Time")))
...

PS 您需要确保所有时间值的格式正确。


推荐阅读