Effiziente Konvertierung von Datentabellen in CSV in C#
Dieser Artikel zeigt eine robuste Methode zum Konvertieren von C#-DataTable-Objekten in CSV-Dateien (Comma-Separated Value). Bei der ursprünglichen Methode gab es Probleme mit der ordnungsgemäßen Datentrennung. Diese Lösung bietet einen korrigierten und verbesserten Ansatz.
Hier ist der optimierte Code:
<code class="language-csharp">StringBuilder sb = new StringBuilder(); IEnumerable<string> columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName); sb.AppendLine(string.Join(",", columnNames)); foreach (DataRow row in dt.Rows) { IEnumerable<string> fields = row.ItemArray.Select(field => field?.ToString() ?? ""); //Handle null values sb.AppendLine(string.Join(",", fields)); } File.WriteAllText("test.csv", sb.ToString());</code>
Dieser Code behebt das ursprüngliche Problem, indem er die Daten innerhalb der CSV-Datei korrekt in einzelne Zellen aufteilt. Es nutzt die Methoden Select
und string.Join
von LINQ, um die durch Kommas getrennte Zeichenfolge sowohl für Spaltenüberschriften als auch für Datenzeilen effizient zu erstellen. Durch die Verwendung von File.WriteAllText
wird sichergestellt, dass die CSV-Daten in die angegebene Datei geschrieben werden. Durch das Hinzufügen von field?.ToString() ?? ""
werden potenzielle Nullwerte ordnungsgemäß behandelt.
Weitere Erweiterungen, wie z. B. Escape-Anführungszeichen für Sonderzeichen oder Speicheroptimierungstechniken, können je nach spezifischen Anwendungsanforderungen integriert werden.
Das obige ist der detaillierte Inhalt vonWie kann ich eine DataTable in C# korrekt in eine CSV-Datei konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!