我如何使用System.Data.DataTableExtensions的CopyToDataTable方法?

时间:2009-02-25 00:33:33

标签: c# datatable generic-list

我想使用DataTableExtensions中提供的CopyToDataTable方法创建一个给定List的数据表。我之前已经问过How do I transform a List into a DataSet?这个问题并从exceptional answer获得了CMS,这是通过创建扩展程序实现我想要的public static DataTable ToDataTable<T>(this IEnumerable<T> collection)

我一直在使用他的建议......但最近我seen in a blog已经存在System.Data.DataTableExtensions中存在的扩展名CopyToDataTable<T>(this IEnumerable<T> source) : DataTable

因此,我认为我应该切换到使用这种内置的扩展方法,而不是使用我必须维护的方法。

不幸的是,我在弄清楚如何使用它时遇到了一些麻烦。

我可以使用我的IList并说myListofMyClass.CopyToDataTable()但是我得到一个编译错误,说“类型'MyClass'必须可以转换为'System.Data.DataRow'才能将它用作参数'T'在通用方法中......“

为了使其可以转换为System.Data.DataRow,我需要做一些特别的事情吗MyClass吗?我需要实现一些接口吗?

3 个答案:

答案 0 :(得分:2)

请看这个链接:

http://blogs.msdn.com/aconrad/archive/2007/09/07/science-project.aspx

基本上,它曾经是Linq的一部分,但由于某种原因它被删除了。他的方法确实很好用,所以检查一下。

答案 1 :(得分:1)

唉,对于CopyToDataTableT必须是DataRow(或来自DataRow的类型)。

(有关详细信息,请参阅the MSDN documentation。)

答案 2 :(得分:1)

这不是你想要的。 CopyToDataTable用于将特定于DataRows的集合复制到DataTable(这是DataRows的集合,加上一堆垃圾; CTDT处理“垃圾”方面。)

相关问题