Transformer des DataTables en listes génériques en C#
Plusieurs méthodes existent pour convertir un DataTable en liste générique en C#. Une approche courante consiste à parcourir chaque ligne et à l'ajouter à la liste.
<code class="language-C#">DataTable dt = CreateDataTableInSomeWay(); List<DataRow> list = new List<DataRow>(); foreach (DataRow dr in dt.Rows) { list.Add(dr); }</code>
Une méthode plus efficace : les méthodes d'extension
.NET 3.5 et versions ultérieures offrent une solution plus efficace en utilisant les méthodes d'extension de la classe DataTableExtensions
. La méthode AsEnumerable()
transforme le DataTable en un IEnumerable<DataRow>
, qui peut ensuite être facilement converti en List<DataRow>
à l'aide de ToList()
.
<code class="language-C#">IEnumerable<DataRow> sequence = dt.AsEnumerable(); // Or, more directly: using System.Linq; ... List<DataRow> list = dt.AsEnumerable().ToList();</code>
Cette approche basée sur LINQ évite les boucles explicites, ce qui permet d'obtenir un code plus propre et potentiellement plus rapide.
Analyse des performances
Lors du choix d'une méthode de conversion, les performances sont essentielles. L'itération ligne par ligne peut être lente avec de grands DataTables. La combinaison des méthodes AsEnumerable()
et ToList()
offre généralement des performances supérieures grâce à sa mise en œuvre optimisée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!