Maison > développement back-end > C++ > Comment convertir efficacement les listes génériques en données de données en C #?

Comment convertir efficacement les listes génériques en données de données en C #?

Mary-Kate Olsen
Libérer: 2025-01-30 21:41:12
original
533 Les gens l'ont consulté

How to Efficiently Convert Generic Lists to DataTables in C#?

Transformer efficacement des listes génériques en données de données dans C #

De nombreux développeurs C # rencontrent le défi de convertir les listes génériques en dataTables. Bien que la réflexion offre une solution, des méthodes plus efficaces existent. Cet article explore les approches optimales.

Tiration de FastMember pour la vitesse

Pour les performances supérieures, la bibliothèque FastMember (disponible via NuGet) est fortement recommandée:

<code class="language-csharp">IEnumerable<sometype> data = ...;
DataTable table = new DataTable();
using(var reader = ObjectReader.Create(data)) {
    table.Load(reader);
}</code>
Copier après la connexion

pré-.net 3.5 Alternatives: Réflexion et hyperdéscripteur

Avant .NET 3.5, les développeurs se sont appuyés sur la réflexion ou l'hyperdéscripteur (disponible en .NET 2.0):

<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>
Copier après la connexion

Optimisation des performances: hyperdéscripteur

Pour maximiser les performances, l'activation de l'hyperdéscripteur pour le type d'objet est cruciale. Les tests de référence révèlent des améliorations de vitesse substantielles:

  • Méthode standard: 27179 ms
  • HyperDescripteur activé: 6997 ms

En utilisant ces techniques, les développeurs peuvent améliorer considérablement l'efficacité de la conversion des listes génériques en données dans leurs applications C #.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal