Linq:无法转换类型为&system;的系统对象'输入' system.string'

时间:2017-11-18 14:53:25

标签: c# linq

Dt包含LOADERID 300                       CompanyName India

var test = from t in Dt.AsEnumerable()
           group t by t.Field<string>("LOADERID") into g
           select new
           { 
              cr = g.Key,
             count = g.Count(),
           };

迭代linq结果:

foreach(var temp in test) -> throwing error
{
//Code
}
  

无法转换类型为&system;的系统对象&#39;输入&#39; system.string&#39;

请说明我做错了什么。 感谢

1 个答案:

答案 0 :(得分:1)

根据您的数据LOADERID = 300,很明显您正在尝试将double转换为string。您必须使用正确的数据类型:

var test = from t in Dt.AsEnumerable()
           group t by t.Field<double>("LOADERID") into g
           select new
           { 
              cr = g.Key,
              count = g.Count(),
           };

或者,如果数据类型在后续代码中不重要,则可以使用索引器而不是Field<T>

var test = from t in Dt.AsEnumerable()
           group t by t["LOADERID"] into g
           select new
           { 
              cr = g.Key,
              count = g.Count(),
           };