Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengasingkan Lajur CSV kepada Tatasusunan Individu dalam C#?

Bagaimanakah Saya Boleh Mengasingkan Lajur CSV kepada Tatasusunan Individu dalam C#?

Patricia Arquette
Lepaskan: 2025-01-26 06:46:09
asal
502 orang telah melayarinya

Kod C# ini dengan cekap memisahkan lajur CSV ke dalam tatasusunan individu. Mari kita memperbaikinya untuk kejelasan dan keteguhan.

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

kod C# yang lebih baik untuk pemisahan lajur CSV:

Versi ini mengendalikan kesilapan yang berpotensi, seperti nilai yang hilang atau pembatas yang salah, dan membolehkan bilangan lajur yang berubah -ubah:

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();
            }
        }
    }
}
Salin selepas log masuk
Kod yang lebih baik ini:

    mengendalikan pelbagai lajur:
  • ia secara dinamik mencipta senarai untuk setiap lajur berdasarkan baris pertama.
  • Pengendalian ralat:
  • Termasuk blok untuk mengendalikan dan pengecualian potensi lain. try-catch FileNotFoundException
  • Pemangkasan ruang putih:
  • Menggunakan untuk menghapuskan ruang putih yang terkemuka/trailing dari setiap nilai. Trim() mengendalikan panjang baris yang tidak konsisten:
  • dengan anggun mengendalikan fail CSV di mana beberapa baris mempunyai nilai yang lebih sedikit daripada yang lain.
  • output yang lebih jelas:
  • membentangkan output dalam format yang lebih teratur dan boleh dibaca.
  • Menggunakan parameter pembatas:
  • membolehkan anda menentukan pembatas (mis., ',', ',' | ') Jika bukan titik koma.
  • ingat untuk menggantikan
  • dengan laluan sebenar ke fail CSV anda. Penyelesaian yang mantap ini memberikan pendekatan yang lebih dipercayai dan serba boleh untuk memproses data CSV dalam C#.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengasingkan Lajur CSV kepada Tatasusunan Individu dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan