Maison > développement back-end > C++ > Comment puis-je convertir efficacement les listes en données dans .NET?

Comment puis-je convertir efficacement les listes en données dans .NET?

Susan Sarandon
Libérer: 2025-01-30 21:51:12
original
607 Les gens l'ont consulté

How Can I Efficiently Convert Lists to DataTables in .NET?

<.> Dans le .NET, la liste a été convertie en un tableau de données

Dans le développement .NET, la conversion des listes génériques en tables de données est une demande commune. Ce qui suit est de savoir comment utiliser FastMember pour implémenter cette opération:

L'API de méta-programmation

FastMember a optimisé ce processus pour obtenir des performances maximales. Vous pouvez spécifier un membre spécifique que vous souhaitez inclure:
<code class="language-csharp">using FastMember;

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

Méthode alternative
<code class="language-csharp">using FastMember;

IEnumerable<sometype> data = ...;
DataTable table = new DataTable();
using (var reader = ObjectReader.Create(data, "Id", "Name", "Description"))
{
    table.Load(reader);
}</code>
Copier après la connexion

Réflexion

Afin d'améliorer les performances, vous pouvez activer l'hyperdéscripteur:

<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++)
        {
            PropertyDescriptor prop = props[i];
            row[i] = prop.GetValue(item);
        }
        table.Rows.Add(row);
    }
    return table;
}</code>
Copier après la connexion
Veuillez noter que les fragments de code ci-dessus sont pour référence uniquement, et l'application réelle peut devoir être ajustée en fonction de la situation spécifique. La méthode à choisir dépend de vos exigences de performance et de vos préférences de complexité du code. FastMember fonctionne généralement mieux en termes de performances, et la méthode de réflexion est plus facile à comprendre et à maintenir, mais les performances peuvent être plus faibles.

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