IEnumerable类型的LINQ对象不返回DataTable

时间:2016-09-08 12:39:52

标签: c# linq group-by asenumerable

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

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())) 
        };

提醒:我的目标是在DataTable

之后检索生成的GroupBy Clause

1 个答案:

答案 0 :(得分:1)

CopyToDataTable的泛型类型有限制。

看一下方法的声明:

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

}

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

根据DataTable来自,绑定等的内容,还有许多其他方法可以完成您尝试做的事情,但这就是您没有这种方法的原因。< / p>