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

mez*_*oid 5 c# datatable generic-list

我想使用DataTableExtensions中提供的CopyToDataTable方法创建一个给定List的数据表.我之前已经问过如何将List转换为DataSet的问题?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'方法..."

有什么特别的东西我需要做MyClass才能使它可以转换为System.Data.DataRow吗?我需要实现一些接口吗?

BFr*_*ree 2

请参阅此链接:

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

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