Maison > développement back-end > C++ > Comment convertir facilement un DataReader en liste ?

Comment convertir facilement un DataReader en liste ?

DDD
Libérer: 2025-01-16 22:21:16
original
270 Les gens l'ont consulté

How to Easily Convert a DataReader to a List?

Convertir efficacement DataReader en liste

DataReader est pratique pour stocker des données, mais il est parfois nécessaire de traiter des données dans d'autres formats (comme des listes). La conversion d'un DataReader en une liste fortement typée, comme List, peut être fastidieuse, mais ce n'est pas obligatoire.

Une façon de simplifier le processus consiste à créer une méthode d'extension pour gérer la conversion. Un exemple est le suivant :

<code class="language-csharp">public static IEnumerable<T> Select<T>(this IDataReader reader,
                                       Func<IDataReader, T> projection)
{
    while (reader.Read())
    {
        yield return projection(reader);
    }
}</code>
Copier après la connexion

Cette méthode prend un Func qui définit comment convertir chaque ligne du DataReader en une instance de type T. Vous pouvez ensuite utiliser la méthode ToList() de LINQ pour convertir le résultat en List.

Une autre approche consiste à créer une méthode dans le type cible (Client) qui convertit à partir de DataReader. Par exemple :

<code class="language-csharp">public static Customer FromDataReader(IDataReader reader) { ... }</code>
Copier après la connexion

En utilisant cette méthode vous pouvez simplement récupérer la Liste en utilisant le code suivant :

<code class="language-csharp">using (IDataReader reader = ...)
{
    List<Customer> customers = reader.Select<Customer>(Customer.FromDataReader)
                                     .ToList();
}</code>
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal