Heim > Backend-Entwicklung > C++ > Wie kann ich eine Datentabelle in C# effizient in eine generische Liste konvertieren?

Wie kann ich eine Datentabelle in C# effizient in eine generische Liste konvertieren?

Mary-Kate Olsen
Freigeben: 2025-01-18 16:56:14
Original
292 Leute haben es durchsucht

How Can I Efficiently Convert a DataTable to a Generic List in C#?

Datentabellen in generische Listen in C# umwandeln

Es gibt mehrere Methoden zum Konvertieren einer DataTable in eine generische Liste in C#. Ein gängiger Ansatz besteht darin, jede Zeile zu durchlaufen und sie der Liste hinzuzufügen.

<code class="language-C#">DataTable dt = CreateDataTableInSomeWay();

List<DataRow> list = new List<DataRow>();
foreach (DataRow dr in dt.Rows)
{
    list.Add(dr);
}</code>
Nach dem Login kopieren

Eine effizientere Methode: Erweiterungsmethoden

.NET 3.5 und spätere Versionen bieten eine effizientere Lösung mit Erweiterungsmethoden aus der Klasse DataTableExtensions. Die AsEnumerable()-Methode wandelt die DataTable in eine IEnumerable<DataRow> um, die dann einfach mit List<DataRow>.ToList() in eine

umgewandelt werden kann
<code class="language-C#">IEnumerable<DataRow> sequence = dt.AsEnumerable();

// Or, more directly:
using System.Linq;
...
List<DataRow> list = dt.AsEnumerable().ToList();</code>
Nach dem Login kopieren

Dieser LINQ-basierte Ansatz vermeidet explizite Schleifen, was zu saubererem und möglicherweise schnellerem Code führt.

Leistungsanalyse

Bei der Auswahl einer Konvertierungsmethode ist die Leistung entscheidend. Bei großen Datentabellen kann die zeilenweise Iteration langsam sein. Die Methodenkombination AsEnumerable() und ToList() bietet aufgrund ihrer optimierten Implementierung im Allgemeinen eine überlegene Leistung.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Datentabelle in C# effizient in eine generische Liste konvertieren?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage