foreach (DataRow row in myDataTable.Select())
foreach (DataRow row in myDataTable.AsEnumerable())
foreach (DataRow row in myDataTable.Rows)
Différence?C#: Itérer via une table de données: Lignes, Select() ou AsEnumerable()
foreach (DataRow row in myDataTable.Select())
foreach (DataRow row in myDataTable.AsEnumerable())
foreach (DataRow row in myDataTable.Rows)
Différence?C#: Itérer via une table de données: Lignes, Select() ou AsEnumerable()
Rows
n'est pas fortement typé - donc il y aura un cast à chaque itération, et vous ne pouvez pas utiliser LINQ pour les objets facilement. (Je crois que AsEnumerable()
devra jeter à chaque itération interne aussi bien, mais au moins vous pouvez l'utiliser pour d'autres méthodes LINQ facilement.)
Select
a besoin de construire un tableau, donc il y a évidemment une pénalité de performance là-bas.
Personnellement, j'utiliserais AsEnumerable()
à moins que vous ne vouliez modifier la table dans la boucle, auquel cas le fait que Select
construise un tableau à l'avance peut être un avantage.
Utilisez AsEnumerable() si vous essayez d'interroger la datatable à l'aide de LINQ, sinon, vous pouvez aussi bien utiliser la structure de bouclage ...