Maison > développement back-end > C++ > Comment puis-je séparer les colonnes CSV en tableaux individuels en C# ?

Comment puis-je séparer les colonnes CSV en tableaux individuels en C# ?

Patricia Arquette
Libérer: 2025-01-26 06:46:09
original
434 Les gens l'ont consulté

Ce code C # sépare efficacement les colonnes CSV en tableaux individuels. Affinons-le pour la clarté et la robustesse.

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

Code C # amélioré pour la séparation des colonnes CSV:

Cette version gère les erreurs potentielles, telles que les valeurs manquantes ou les délimiteurs incorrects, et permet un nombre variable de colonnes:

<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>
Copier après la connexion

Ce code amélioré:

  • gère plusieurs colonnes: Il crée dynamiquement des listes pour chaque colonne basée sur la première ligne.
  • Gestion des erreurs: comprend try-catch blocs à gérer FileNotFoundException et d'autres exceptions potentielles.
  • Coupage des espaces blancs: utilise Trim() pour éliminer les espaces blancs de tête / traînants de chaque valeur.
  • gère les longueurs de ligne incohérentes: gère gracieusement les fichiers CSV où certaines lignes ont moins de valeurs que d'autres.
  • Sortie plus claire: présente la sortie dans un format plus organisé et lisible.
  • utilise un paramètre Delimiter: vous permet de spécifier le délimiteur (par exemple, ',', ';', '|') s'il ne s'agit pas d'un point-virgule.

N'oubliez pas de remplacer "C:test.csv" par le chemin d'accès réel vers votre fichier CSV. Cette solution robuste fournit une approche plus fiable et polyvalente pour traiter les données CSV en C #.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal