Coverting Liste de Dictionnaire DataTable

Nous sommes actuellement en train de le faire en parcourant chaque valeur de la liste et le dictionnaire:

private DataTable ChangeToDictionary(List<Dictionary<string,int>> list)
       {
           DataTable datatTableReturn = new DataTable();

           if (list.Count() > 0)
           {
               Dictionary<string, int> haeders = list.ElementAt(0);
               foreach (var colHead in haeders)
               {
                   datatTableReturn.Columns.Add(colHead.Key);
               }
           }

           foreach (var row in list)
           {
               DataRow dataRow = datatTableReturn.NewRow();
               foreach (var col in row)
               {

                   dataRow[col.Key] = col.Value;
               }
               datatTableReturn.Rows.Add(dataRow);
           }
           return datatTableReturn;

       }

Mais est-il une meilleure façon? Boucle à travers tant de fois ne se sent pas bien

Comme quoi? Toute autre approche serait éventuellement besoin pour aller au-dessus de toutes vos données.c.q. boucle sur les enregistrements. Je ne vois pas le réel problème que vous rencontrez. Vous n'aimez pas le code ci-dessus?
Cela fonctionne, mais comme dit est, il y a de mieux ,robuste
Pourquoi convertir une DataTable en premier lieu?
Parce que DataTable peut n'est pas là dans Seilverlight et parfois pas sérialisable, tandis que le retour de service
Que voulez-vous atteindre? Plus de vitesse? Réutilisabilité du code? Code de l'élégance? Pour commencer, ne pas utiliser de Count() méthode d'extension sur List<T>. Utilisation Count propriété plutôt.

OriginalL'auteur Simsons | 2013-03-08