Heim >Backend-Entwicklung >C++ >Wie kann ich einen DataReader effizient in eine Liste in .NET konvertieren?

Wie kann ich einen DataReader effizient in eine Liste in .NET konvertieren?

Susan Sarandon
Susan SarandonOriginal
2025-01-16 22:17:09982Durchsuche

How Can I Efficiently Convert a DataReader into a List in .NET?

Daten effizient verarbeiten: DataReader in List konvertieren

Wenn Sie Daten in einer .NET-Umgebung verarbeiten, möchten Sie möglicherweise einen DataReader (einen Datenstrom, der nur vorwärts liest) in ein besser verwaltbares Format konvertieren, z. B. eine Liste. Diese Transformation ermöglicht Ihnen einen effizienteren Zugriff auf und eine effizientere Verarbeitung strukturierter Daten.

Lösung: Erweiterungsmethoden

Eine Möglichkeit zur Konvertierung besteht darin, Erweiterungsmethoden zu verwenden. 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>

Mit dieser Erweiterungsmethode können Sie Projektionsfunktionen verwenden, um Daten aus einem DataReader auszuwählen und in ein IEnumerable zu konvertieren.

Nutzungsbeispiele

Um Daten in eine Liste zu konvertieren können Sie den folgenden Code verwenden:

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

In diesem Beispiel werden die Zeilen im DataReader in eine Liste von Kundenobjekten konvertiert.

Alternative: spezialisierte Methoden für Entitätstypen

Alternativ können Sie eine dedizierte statische Methode in der Kundenentität erstellen:

<code class="language-csharp">public static Customer FromDataReader(IDataReader reader) { ... }</code>

Diese Methode ist für die Erstellung eines Kundenobjekts basierend auf den Daten im DataReader verantwortlich.

Mit dieser Methode können Sie den Konvertierungsprozess vereinfachen:

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

Durch diese Techniken können Sie die Daten in DataReader effizient in List konvertieren und so die Leistungsfähigkeit von LINQ für die weitere Datenbearbeitung und -verarbeitung nutzen.

Das obige ist der detaillierte Inhalt vonWie kann ich einen DataReader effizient in eine Liste in .NET konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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