直接上代码:
private DataTable GetTable(DataTable dt)
{
IEnumerable<DataRow> query = from t in dt.AsEnumerable()
group t by t.Field<string>("id")
into s
select new
{
sum = s.Sum(m => m.Field<int>("age")),
s.Key
};
DataTable boundTable = query .CopyToDataTable<DataRow>();
return boundTable;
}错误:无法将类型“System.Collections.Generic.IEnumerable<AnonymousType#1>”隐式转换为“System.Collections.Generic.IEnumerable<System.Data.DataRow>”。存在一个显式转换(是否缺少强制转换?)
返回类型问题,这个地方应该如何处理呢?我要返回的是一个table
private DataTable GetTable(DataTable dt)
{
IEnumerable<DataRow> query = from t in dt.AsEnumerable()
group t by t.Field<string>("id")
into s
select new
{
sum = s.Sum(m => m.Field<int>("age")),
s.Key
};
DataTable boundTable = query .CopyToDataTable<DataRow>();
return boundTable;
}错误:无法将类型“System.Collections.Generic.IEnumerable<AnonymousType#1>”隐式转换为“System.Collections.Generic.IEnumerable<System.Data.DataRow>”。存在一个显式转换(是否缺少强制转换?)
返回类型问题,这个地方应该如何处理呢?我要返回的是一个table
private DataTable GetTable(DataTable dt)
{
IEnumerable<DataRow> query = from t in dt.AsEnumerable()
group t by t.Field<string>("id")
into s
select new
{
sum = s.Sum(m => m.Field<int>("age")),
s.Key
};
DataTable boundTable =new DataTable();
boundTable.Columns.Add("sum");
boundTable.Columns.Add("key");
query.ToList().ForEach(q=>boundTable.Rows.Add(q.ItemArray));
return boundTable;
}
select new 已经用红色标识出来错误了(类型转换错),用var 可以,但不能转成table
List<DataRow>呢
{
var query = from t in dt.AsEnumerable()
group t by t.Field<string>("id")
into s
select new
{
sum = s.Sum(m => m.Field<int>("age")),
s.Key
};
DataTable boundTable =new DataTable();
boundTable.Columns.Add("sum");
boundTable.Columns.Add("key");
query.ToList().ForEach(q=>boundTable.Rows.Add(q.ItemArray));
return boundTable;
}
用上面的也不行
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
private DataTable GetTable(DataTable dt)
{
var query = from t in dt.AsEnumerable()
group t by t.Field<string>("id")
into s
select new
{
sum = s.Sum(m => m.Field<int>("age")),
s.Key
};
DataTable boundTable =new DataTable();
boundTable.Columns.Add("sum");
boundTable.Columns.Add("key");
query.ToList().ForEach(q=>boundTable.Rows.Add(q.sum,q.Key));
return boundTable;
}