Heim > Backend-Entwicklung > C++ > Wie kann ich CSV -Spalten in einzelne Arrays in C#trennen?

Wie kann ich CSV -Spalten in einzelne Arrays in C#trennen?

Patricia Arquette
Freigeben: 2025-01-26 06:46:09
Original
474 Leute haben es durchsucht

Dieser C# -Coder trennt CSV -Spalten effizient in einzelne Arrays. Lassen Sie uns es für Klarheit und Robustheit verfeinern.

How Can I Separate CSV Columns into Individual Arrays in C#?

verbessert C# Code für die CSV -Spalte Trennung:

Diese Version verarbeitet potenzielle Fehler wie fehlende Werte oder falsche Grenzwerte und ermöglicht eine variable Anzahl von Spalten:

<code class="language-csharp">using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

public class CsvSplitter
{
    public static List<List<string>> SeparateCsvColumns(string filePath, char delimiter = ';')
    {
        List<List<string>> columns = new List<List<string>>();

        try
        {
            using (var reader = new StreamReader(filePath))
            {
                string line;
                bool firstLine = true;

                while ((line = reader.ReadLine()) != null)
                {
                    string[] values = line.Split(delimiter);

                    if (firstLine)
                    {
                        // Initialize lists for each column on the first line
                        for (int i = 0; i < values.Length; i++)
                        {
                            columns.Add(new List<string>());
                        }
                        firstLine = false;
                    }

                    // Add values to corresponding columns.  Handles lines with fewer values than the header.
                    for (int i = 0; i < Math.Min(values.Length, columns.Count); i++)
                    {
                        columns[i].Add(values[i].Trim()); //Trim whitespace
                    }
                }
            }
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine($"Error: File not found at {filePath}");
            return null; // Or throw a more specific exception
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
            return null; // Or throw a more specific exception
        }

        return columns;
    }

    public static void Main(string[] args)
    {
        string filePath = @"C:\test.csv"; //Replace with your file path
        List<List<string>> separatedColumns = SeparateCsvColumns(filePath);

        if (separatedColumns != null)
        {
            for (int i = 0; i < separatedColumns.Count; i++)
            {
                Console.WriteLine($"Column {i + 1}:");
                foreach (string value in separatedColumns[i])
                {
                    Console.WriteLine(value);
                }
                Console.WriteLine();
            }
        }
    }
}</code>
Nach dem Login kopieren

Dieser verbesserte Code:

  • verarbeitet mehrere Spalten: Es erstellt dynamisch Listen für jede Spalte basierend auf der ersten Zeile.
  • Fehlerbehandlung: enthält try-catch Blöcke, um FileNotFoundException und andere potenzielle Ausnahmen zu handhaben.
  • Whitespace Trimmen: verwendet Trim(), um die Leading/Trailing Whitespace von jedem Wert zu entfernen.
  • verarbeitet inkonsistente Zeilenlängen: verarbeitet anmutig CSV -Dateien, bei denen einige Zeilen weniger Werte als andere haben.
  • Clearer Output: präsentiert die Ausgabe in einem organisierteren und lesbaren Format.
  • verwendet einen Trennzeichenparameter: Ermöglicht Ihnen, den Trennzeichen (z. B. ',', ';', '|') anzugeben, wenn es kein Semikolon ist.

Denken Sie daran, "C:test.csv" durch den tatsächlichen Pfad zu Ihrer CSV -Datei zu ersetzen. Diese robuste Lösung bietet einen zuverlässigeren und vielseitigeren Ansatz zur Verarbeitung von CSV -Daten in C#.

Das obige ist der detaillierte Inhalt vonWie kann ich CSV -Spalten in einzelne Arrays in C#trennen?. 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