Heim > Backend-Entwicklung > C++ > Wie konvertiert man einen DataReader einfach in eine Liste?

Wie konvertiert man einen DataReader einfach in eine Liste?

DDD
Freigeben: 2025-01-16 22:21:16
Original
270 Leute haben es durchsucht

How to Easily Convert a DataReader to a List?

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 kann umständlich sein, muss es aber nicht.

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>
Nach dem Login kopieren

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 umzuwandeln.

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>
Nach dem Login kopieren

Mit dieser Methode können Sie die Liste einfach abrufen mit dem folgenden Code:

<code class="language-csharp">using (IDataReader reader = ...)
{
    List<Customer> customers = reader.Select<Customer>(Customer.FromDataReader)
                                     .ToList();
}</code>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage