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
Susan Sarandonoriginal
2025-01-30 21:51:12565parcourir

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>

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>

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>
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:
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