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
Mary-Kate OlsenOriginal
2025-01-18 16:56:14339Durchsuche

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>

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>

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!

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