ソフトウェア開発では、データは構造化された形式で必要なことがよくあります。 Datatableは、データフォームを提供する一般的なデータ構造です。ただし、処理する必要があるデータが汎用リストまたは列挙オブジェクトに保存される状況に遭遇する場合があります。この場合、リストまたはアクセス可能なオブジェクトをデータテーブルに変換するための方法が必要です。
NugetのFastMemberライブラリを使用して、効率的で便利なソリューションを取得できます。 FastMemberを使用して、次のコードを使用して変換を実行できます。
カスタム変換リアリゼーション<code class="language-csharp">IEnumerable<sometype> data = ...; DataTable table = new DataTable(); using (var reader = ObjectReader.Create(data)) { table.Load(reader); }</code>
パフォーマンス予防策さまざまな変換方法を評価する場合、パフォーマンス効果を考慮する必要があります。 FastMemberソリューションは、メタプログラミング機能により、最高の速度を提供します。カスタムの実装は遅いですが、小さなデータセットの効果的なオプションです。
結論
<code class="language-csharp">public static DataTable ToDataTable<T>(this IList<T> data) { PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T)); DataTable table = new DataTable(); for (int i = 0; i < props.Count; i++) { PropertyDescriptor prop = props[i]; table.Columns.Add(prop.Name, prop.PropertyType); } foreach (T item in data) { DataRow row = table.NewRow(); for (int i = 0; i < props.Count; i++) { row[i] = props[i].GetValue(item); } table.Rows.Add(row); } return table; }</code>
汎用リストまたは列挙オブジェクトをデータテーブルに変換することは、C#プログラミングの一般的なタスクです。 FastMemberライブラリを使用するか、カスタム変換を実現することにより、開発者はこの変換を効率的に実装できます。
以上が一般的なリストをC#のデータテーブルに効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。