Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat memisahkan lajur fail CSV dengan cekap ke dalam tatasusunan di C#?

Bagaimanakah saya dapat memisahkan lajur fail CSV dengan cekap ke dalam tatasusunan di C#?

Patricia Arquette
Lepaskan: 2025-01-26 07:06:12
asal
342 orang telah melayarinya

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

Pemisahan Lajur Fail CSV C# kepada Tatasusunan: Pendekatan Diperkemas

Panduan ini menunjukkan kaedah yang cekap untuk menghuraikan fail CSV dan mengedarkan lajurnya ke dalam tatasusunan individu menggunakan C#.

Prosedur:

  1. Permulaan StreamReader: Mulakan dengan mencipta objek StreamReader, menyediakan laluan ke fail CSV anda sebagai hujah.

  2. Permulaan Tatasusunan: Isytiharkan dua senarai kosong (List<string>)—listA dan listB—untuk menyimpan data daripada setiap lajur. Pendekatan dinamik ini membolehkan pengendalian fail CSV dengan bilangan baris yang berbeza-beza.

  3. Pemprosesan Baris-demi-Baris: Gunakan gelung while untuk lelaran melalui setiap baris fail CSV sehingga penghujungnya dicapai (reader.EndOfStream).

  4. Pengeluaran Data: Di dalam gelung, ReadLine() mendapatkan semula satu baris. Kaedah Split(';') kemudian membahagikan garisan kepada tatasusunan rentetan berdasarkan pembatas koma bernoktah (laraskan mengikut keperluan untuk pembatas CSV anda).

  5. Populasi Tatasusunan: Berikan nilai yang diekstrak pada senarai masing-masing. listA.Add(values[0]) menambah elemen pertama (lajur 1) ke listA dan listB.Add(values[1]) menambah elemen kedua (lajur 2) ke listB.

  6. Sambungan Gelung: Gelung diteruskan sehingga semua baris diproses.

Contoh Kod:

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

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

        using (var reader = new StreamReader(filePath))
        {
            List<string> listA = new List<string>();
            List<string> listB = new List<string>();

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

                if (values.Length >= 2) //Error handling for lines with less than 2 columns.
                {
                    listA.Add(values[0]);
                    listB.Add(values[1]);
                }
                else
                {
                    Console.WriteLine($"Skipping line: {line} (Insufficient columns)");
                }
            }

            //Further processing or output of listA and listB can be added here.
            Console.WriteLine("List A: " + string.Join(", ", listA));
            Console.WriteLine("List B: " + string.Join(", ", listB));

        }
    }
}</code>
Salin selepas log masuk

Contoh dipertingkat ini termasuk pengendalian ralat untuk baris dengan kurang daripada dua lajur, menghalang kemungkinan pengecualian. Ingat untuk menggantikan "C:test.csv" dengan laluan sebenar ke fail CSV anda. Kaedah yang dipertingkatkan ini menyediakan penyelesaian yang mantap dan cekap untuk mengasingkan lajur CSV kepada tatasusunan.

Atas ialah kandungan terperinci Bagaimanakah saya dapat memisahkan lajur fail CSV dengan cekap ke dalam tatasusunan di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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