C# で DataTable を汎用リストに変換する
C# には、DataTable を汎用リストに変換するためのメソッドがいくつか存在します。 一般的なアプローチには、各行を反復処理してリストに追加することが含まれます。
<code class="language-C#">DataTable dt = CreateDataTableInSomeWay(); List<DataRow> list = new List<DataRow>(); foreach (DataRow dr in dt.Rows) { list.Add(dr); }</code>
より効率的な方法: 拡張メソッド
.NET 3.5 以降のバージョンでは、DataTableExtensions
クラスの拡張メソッドを使用したより効率的なソリューションが提供されます。 AsEnumerable()
メソッドは DataTable を IEnumerable<DataRow>
に変換します。これは、List<DataRow>
.ToList()
を使用して簡単に
<code class="language-C#">IEnumerable<DataRow> sequence = dt.AsEnumerable(); // Or, more directly: using System.Linq; ... List<DataRow> list = dt.AsEnumerable().ToList();</code>
この LINQ ベースのアプローチにより、明示的なループが回避され、コードがよりクリーンになり、より高速になる可能性があります。
パフォーマンス分析
変換方法を選択するときは、パフォーマンスが重要です。 DataTable が大きい場合、行ごとの反復が遅くなる可能性があります。 AsEnumerable()
と ToList()
メソッドの組み合わせは、実装が最適化されているため、一般に優れたパフォーマンスを提供します。
以上がC# で DataTable を汎用リストに効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。