5

DataTableExtensions で使用できる CopyToDataTable メソッドを使用して、List を指定してデータ テーブルを作成したいと考えています。以前、List を DataSet に変換するにはどうすればよいですか? という質問をしたことがあります。拡張機能を作成することで私が望んでいたことを達成するというCMSからの例外的な回答を得ましたpublic static DataTable ToDataTable<T>(this IEnumerable<T> collection)

私は彼が提案したものを使用してきました...しかし最近、ブログでそのような拡張機能が既に存在するのを見ました... CopyToDataTable<T>(this IEnumerable<T> source) : DataTableSystem.Data.DataTableExtensionsに存在します。

その結果、私は、自分で維持しなければならないメソッドを使用する代わりに、この組み込みの拡張メソッドを使用することに切り替える必要があると考えています。

残念ながら、私はそれを使用する方法を理解するのに少し苦労しています.

IList を取得して myListofMyClass.CopyToDataTable() と言うことができますが、「型 'MyClass' は、ジェネリックでパラメーター 'T' として使用するには、'System.Data.DataRow' に変換可能である必要があります」というコンパイル エラーが発生します。方法..."

System.Data.DataRow に変換できるようにするために MyClass を実行する必要がある特別なことはありますか? 実装する必要があるインターフェイスはありますか?

4

3 に答える 3

2

このリンクを参照してください:

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

基本的に、以前は Linq の一部でしたが、何らかの理由で削除されました。しかし、彼の方法はうまく機能するので、チェックしてください。

于 2009-02-25T00:43:42.657 に答える
1

残念ながら、 forは(または から派生した型)CopyToDataTableTなければなりません。DataRowDataRow

(詳細については、MSDN のドキュメントを参照してください。)

于 2009-02-25T00:40:13.820 に答える
1

これは本当にあなたが望むものではありません。CopyToDataTable は、特に DataRows のコレクションを DataTable にコピーするために作成されます (これは、DataRows のコレクションに加えて、ジャンクの束です。CTDT は「ジャンク」の側面を処理します)。

于 2009-02-25T00:41:20.853 に答える