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
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>
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>
En utilisant cette méthode vous pouvez simplement récupérer la Liste
<code class="language-csharp">using (IDataReader reader = ...) { List<Customer> customers = reader.Select<Customer>(Customer.FromDataReader) .ToList(); }</code>
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!