Объект LINQ типа IEnumerable не возвращает DataTable
Может ли кто-нибудь кратко мне объяснить, почему я не могу использовать 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 ответ
Решение
Существует ограничение на универсальный тип CopyToDataTable.
Посмотрите на объявление метода:
public static DataTable CopyToDataTable<T>(this IEnumerable<T> source)
where T : DataRow
{
}
Если вы заметили эту вторую строку, ваш IEnumerable<T>
должен быть перечисляемым DataRow
s. У вас есть множество анонимных объектов.
В зависимости от того, что ваш DataTable
приходит, привязывается и т. д., есть много других способов выполнить то, что вы пытаетесь сделать, но именно поэтому у вас нет этого метода доступным.