Maison > développement back-end > C++ > Comment convertir efficacement une liste générique en une données dans C #?

Comment convertir efficacement une liste générique en une données dans C #?

Barbara Streisand
Libérer: 2025-01-30 21:56:11
original
872 Les gens l'ont consulté

How to Efficiently Convert a Generic List to a DataTable in C#?

C #-Efficacité moyenne élevée convertissant la liste générique en DataTable

Dans le développement de logiciels, les données sont souvent nécessaires au format structuré. DataTable est une structure de données commune qui fournit des formulaires de données. Cependant, vous pouvez rencontrer la situation où les données qui doivent être traitées sont stockées dans la liste générique ou un objet d'énumération. Dans ce cas, une méthode est nécessaire pour convertir la liste ou l'objet accessible en DataTable.

Utilisez FastMember pour effectuer une conversion efficace

Vous pouvez utiliser la bibliothèque FastMember sur NuGet pour obtenir une solution efficace et pratique. En utilisant FastMember, vous pouvez utiliser le code suivant pour exécuter la conversion:

Réalisation de la conversion personnalisé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

Si vous préférez la méthode de conversion personnalisée, vous pouvez utiliser la fonction hyperdéscripteur dans Reflection ou .NET 2.0 pour créer DataTable à partir de la liste. Ceci est un exemple d'implémentation:

Précautions de performance

<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
Lors de l'évaluation de différentes méthodes de conversion, il est nécessaire de considérer les effets de performance. La solution FastMember offre la meilleure vitesse en raison de sa fonction de méta-programmation. Bien que l'implémentation personnalisée soit lente, elle est toujours une option efficace pour les ensembles de données plus petits.

Conclusion

La conversion de la liste générique ou un objet d'énumération à DataTable est une tâche courante dans la programmation C #. En utilisant la bibliothèque FastMember ou en réalisant une conversion personnalisée, les développeurs peuvent implémenter efficacement cette conversion.

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!

source:php.cn
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