5

我想使用 DataTableExtensions 中可用的 CopyToDataTable 方法创建一个给定列表的数据表。我之前问过这个问题如何将列表转换为数据集?并从CMS得到了一个特殊的答案,即通过创建扩展来实现我想要的public static DataTable ToDataTable<T>(this IEnumerable<T> collection)

我一直在使用他的建议......但最近我在博客中看到已经存在这样的扩展......CopyToDataTable<T>(this IEnumerable<T> source) : DataTable它存在于 System.Data.DataTableExtensions 中。

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

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

我可以使用我的 IList 并说 myListofMyClass.CopyToDataTable() 但我收到一个编译错误,上面写着“'MyClass' 类型必须可转换为 'System.Data.DataRow' 才能将其用作泛型中的参数 'T'方法...”

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

4

3 回答 3

2

请参阅此链接:

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

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

于 2009-02-25T00:43:42.657 回答
1

唉,对于CopyToDataTableT必须是DataRow(或从 派生的类型DataRow)。

(有关详细信息,请参阅MSDN 文档。)

于 2009-02-25T00:40:13.820 回答
1

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

于 2009-02-25T00:41:20.853 回答