Maison >développement back-end >C++ >Comment puis-je convertir efficacement un DataReader en liste dans .NET ?
Traitez efficacement les données : convertissez DataReader en liste
Lors du traitement de données dans un environnement .NET, vous souhaiterez peut-être convertir un DataReader (un flux de données qui lit uniquement vers l'avant) dans un format plus gérable, tel qu'une liste
Solution : Méthodes d'extension
Une façon de convertir consiste à utiliser des méthodes d'extension. 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>
Cette méthode d'extension vous permet d'utiliser des fonctions de projection pour sélectionner des données d'un DataReader et les convertir en IEnumerable
Exemples d'utilisation
Pour convertir des données en liste
<code class="language-csharp">using (IDataReader reader = ...) { List<Customer> customers = reader.Select(r => new Customer { CustomerId = r["id"] is DBNull ? null : r["id"].ToString(), CustomerName = r["name"] is DBNull ? null : r["name"].ToString() }).ToList(); }</code>
Cet exemple convertit les lignes du DataReader en une liste d'objets Customer.
Alternative : méthodes spécialisées pour les types d'entités
Vous pouvez également créer une méthode statique dédiée dans l'entité Client :
<code class="language-csharp">public static Customer FromDataReader(IDataReader reader) { ... }</code>
Cette méthode est chargée de créer un objet Customer basé sur les données du DataReader.
En utilisant cette méthode, vous pouvez simplifier le processus de conversion :
<code class="language-csharp">using (IDataReader reader = ...) { List<Customer> customers = reader.Select<Customer>(Customer.FromDataReader) .ToList(); }</code>
Grâce à ces techniques, vous pouvez convertir efficacement les données de DataReader en List
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!