首頁 >後端開發 >C++ >如何在 C# 中有效地將 CSV 檔案列分成陣列?

如何在 C# 中有效地將 CSV 檔案列分成陣列?

Patricia Arquette
Patricia Arquette原創
2025-01-26 07:06:12348瀏覽

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

C# CSV 檔案列分隔為陣列:一種簡化的方法

本指南示範了一種使用 C# 解析 CSV 檔案並將其列指派到單獨數組中的有效方法。

程序:

  1. StreamReader 初始化: 先建立一個 StreamReader 對象,提供 CSV 檔案的路徑作為參數。

  2. 陣列初始化: 宣告兩個空列表 (List<string>) — listAlistB — 來儲存每列的資料。 這種動態方法允許處理具有不同行數的 CSV 檔案。

  3. 逐行處理: 使用 while 循環迭代 CSV 檔案的每一行,直到到達結尾 (reader.EndOfStream)。

  4. 資料擷取: 在循環內,ReadLine() 擷取單行。然後,Split(';') 方法根據分號分隔符號將該行劃分為字串陣列(根據 CSV 分隔符號的需要進行調整)。

  5. 陣列填色: 將擷取的值指派到各自的清單。 listA.Add(values[0]) 將第一個元素(第 1 列)加入 listAlistB.Add(values[1]) 將第二個元素(第 2 列)加入 listB

  6. 循環繼續:循環繼續,直到處理完所有行。

程式碼範例:

<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>

這個增強的範例包括對少於兩列的行的錯誤處理,以防止潛在的異常。請記得將 "C:test.csv" 替換為 CSV 檔案的實際路徑。 這種改進的方法為將 CSV 列分離為數組提供了強大且高效的解決方案。

以上是如何在 C# 中有效地將 CSV 檔案列分成陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn