IEnumerable类型的LINQ对象不返回数据表

本文关键字:返回 数据表 对象 LINQ 类型 IEnumerable | 更新日期: 2023-09-27 18:06:08

有人能简要地解释一下为什么我不能在以下linq对象(IEnumurable类型)上使用CopyToDataTable方法?

var query = from r in SourceData.AsEnumerable()
        group r by r["fruitid"] into Dt
        select new
        {
        Group = Dt.Key,
        Sum = Dt.Sum((t)=> double.Parse(t["name"].ToString())) 
        };

提示:我的目标包括检索GroupBy Clause之后的结果DataTable

IEnumerable类型的LINQ对象不返回数据表

CopyToDataTable的泛型类型有一个限制。

看一下方法的声明:

public static DataTable CopyToDataTable<T>(this IEnumerable<T> source)
    where T : DataRow
{
}

如果你注意到第二行,你的IEnumerable<T>必须是DataRow的一个可枚举对象。你得到的是一个可枚举的匿名对象。

根据你的DataTable来自什么,绑定到什么,等等,有很多其他的方法来完成你想做的事情,但这就是为什么你没有那个方法可用。