第一次使用linq查询
var data = from x in source.Rows.Cast<DataRow>()
    group x by x[1]
    into g
    select new { Key = g.Key.ToString(), Items = g};
string[] array = new string[dt1.Columns.Count];
  array[i] =(from y in x.Items
      where y[2].ToString().Substring(0,9) == dt1.Columns[i].ToString() 
     select y[3].ToString()).Sum();我想求 select y[3].ToString()的和但Sum()使用有问题,应该怎么来写,
linq

解决方案 »

  1.   

    y[i]表示datatable的第几列的内容
      

  2.   

    select y[3].ToString()
    求和怎么可以用ToString()呢
    如下这种测试下:
    array[i] =(from y in x.Items
          where y[2].ToString().Substring(0,9) == dt1.Columns[i].ToString() 
         select y[3]).Sum();
      

  3.   

    可以隐式转换的吧??
    我求max()或者min()必须加,不然报错
      

  4.   

    不能对string类型进行sum操作,可以这样:array[i] =(from y in x.Items
           where y[2].ToString().Substring(0,9) == dt1.Columns[i].ToString() 
          select int.parese(y[3])).Sum().ToString();不过你代码很在逻辑上有些问题, 不如帖出些数据和期望结果来看看
    或许可以帮你优化一下代码查询
      

  5.   

     y[3].ToString()是不能用sum扩展方法的,关键在于y[3]的数据类型是什么