私はList<MyViewModel>
を返すメソッドを呼び出しており、それからDataTable
を埋めたいと思っています。このメソッドは、そのリストフォームに必要ないくつかの場所で呼び出されるため、戻り値の型は変更できません。私はリストを反復して一度に1行で表を埋めることができることを知っていますが、.Load
のようなより洗練された解決策があることを望んでいましたiDataReader
の機能。リストからDataTableを簡単に埋め込む方法<Model>?
答えて
はコメントからは、本当の問題は、あなたがExcelファイルに強く型付けされたリストをエクスポートすることにあるようですが、あなたが使用するライブラリは、唯一のDataTableを受け付けます。
私は例えば、データテーブルとコレクションの両方からデータを読み込むことができ、あなたの代わりにEPPlusライブラリを使用することをお勧めしたい:
sheet.LoadFromDataTable(myTable);
または
sheet.LoadFromCollection(myList);
をEPPlusがあまりにもNuGet packageとして利用可能です。一般的に
、あなたは簡単に例えば、MoreLINQのToDataTable()延長でのDataTableにコレクションを変換することができます:
var myTable=myList.ToDataTable();
あなたが拡張機能のコードhereを見つけることができます。 MoreLINQはa NuGet packageとしても利用可能です。
ありがとうございます、あなたは私の意図で正しいです。私はEPPLusを見ていきます。私はまた、学習の場としてそれをもっと調べるためのリンクを見ていきます。 – Matthew
その他のLINQはオープンソースです。 ToDataTable [ここ](https://github.com/morelinq/MoreLINQ/blob/master/MoreLinq/ToDataTable.cs)のソースを見つけることができます。 –
public DataTable TableFromMyViewModel(params MyViewModel[] items)
{
DataTable _result = new DataTable("MyViewModel");
// Do this for each field
_result.Columns.Add("Field1", typeof(String));
_result.Columns.Add("Field2", typeof(int));
_result.Columns.Add("Field3", typeof(String));
foreach (MyViewModel _item in items)
{
DataRow _row = _result.NewRow();
_row["Field1"] = _item.Field1;
_row["Field2"] = _item.Field2;
_row["Field3"] = _item.Field3;
_result.Rows.Add(_row);
}
return _result;
}
あなたは正解です、ありがとうございます。 – maksymiuk
- 1. silverlightランタイム時にlineSeriesをプログラムで簡単に埋め込む
- 2. DataTableでListViewを簡単に取り込む方法はありますか?
- 3. ストアドプロシージャからDataTableを埋める方法
- 4. winformにms単語を埋め込む方法
- 5. テキストファイルから埋め込みリストを読み込むJava
- 6. HTML5にYoutubeビデオを埋め込む方法<video>タグ?
- 7. ウェブページにウェブブラウザを埋め込む方法
- 8. VLCをウェブページに埋め込む方法
- 9. jarをHTMLに埋め込む方法
- 10. pdf.jsをファンシーボックスに埋め込む方法
- 11. イオンアプリケーションにForm.ioを埋め込む方法
- 12. シェアポイントページにサーバーコードを埋め込む方法
- 13. MulesoftにCDATAを埋め込む方法
- 14. ウェブページをアプレットに埋め込む方法
- 15. グリフコンをグリッドに埋め込む方法
- 16. gpsをビデオに埋め込む方法
- 17. ナビゲーションコントローラーをタブバーコントローラーに埋め込む方法
- 18. TabPanelにNestedListを埋め込む方法
- 19. ブラックベリーアプリケーションにJavaScriptを埋め込む方法
- 20. dllをメモリに埋め込む方法
- 21. VBをasp.netに埋め込む方法
- 22. URLをHTMLに埋め込む方法
- 23. flashbuilderにアセットを埋め込む方法
- 24. リストに画像を埋め込む
- 25. スクリプトからParaViewシーンにアニメーションを埋め込む方法は?
- 26. エクセルチャートをメモリからパワーポイントスライドに直接埋め込む方法は?
- 27. GCCプラグインからオブジェクトファイルにメタデータを埋め込む方法
- 28. DataTableをList(Of t)で埋め込むか、List(Of t)をDataTableに変換する方法?
- 29. JavascriptインタプリタをC#アプリケーションに簡単に埋め込む方法はありますか?
- 30. 抽出を埋め込む単語
ちょうど興味があります - あなたはなぜ光と読み取り可能な 'List'を複雑な 'DataTable'オブジェクトに変換したいのですか? –
Fabio
Excelに情報をエクスポートするために使用するプラグインでは、受信データがDataTableに存在する必要があります。 – Matthew
どのような解決策でもループが繰り返されるので、リスト内のすべての項目に対して行を追加する古典的なループは、単純なアプローチで済むと思います。 – Fabio