DataReader effizient in List konvertieren
DataReader eignet sich zum Speichern von Daten, manchmal ist es jedoch erforderlich, Daten in anderen Formaten (z. B. Listen) zu verarbeiten. Das Konvertieren eines DataReader in eine stark typisierte Liste wie List
Eine Möglichkeit, den Prozess zu vereinfachen, besteht darin, eine Erweiterungsmethode für die Konvertierung zu erstellen. Ein Beispiel ist wie folgt:
<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>
Diese Methode benötigt eine Funktion, die definiert, wie jede Zeile des DataReader in eine Instanz vom Typ T konvertiert wird. Anschließend können Sie die ToList()-Methode von LINQ verwenden, um das Ergebnis in eine Liste
Ein anderer Ansatz besteht darin, eine Methode im Zieltyp (Kunde) zu erstellen, die von DataReader konvertiert. Zum Beispiel:
<code class="language-csharp">public static Customer FromDataReader(IDataReader reader) { ... }</code>
Mit dieser Methode können Sie die Liste einfach abrufen
<code class="language-csharp">using (IDataReader reader = ...) { List<Customer> customers = reader.Select<Customer>(Customer.FromDataReader) .ToList(); }</code>
Das obige ist der detaillierte Inhalt vonWie konvertiert man einen DataReader einfach in eine Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!