C# CSVファイルを読み込む方法|Split + File.ReadAllLines

広告

C#でCSVファイルを読み込むには File.ReadAllLines と Split を組み合わせます。

例えば次のようなCSVがあります。

山田,090-1111-2222
佐藤,080-3333-4444
田中,070-5555-6666

このデータを読み込み 名前と電話番号に分割して扱う方法を解説します。


C# CSV読み込みの基本

CSV読み込みの流れは

  1. File.ReadAllLines で全行を読み込む
  2. 各行を Split(',’) で分割する
  3. 分割結果を変数やクラスに代入する

です。


基本構文

string[] lines = File.ReadAllLines(ファイルパス);

foreach (string line in lines)
{
    string[] data = line.Split(',');
    // data[0], data[1] を使う
}

シンプルなサンプル

data.csv

りんご,100
みかん,80
ぶどう,200

Program.cs

using System;
using System.IO;

namespace CsvSample
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] lines = File.ReadAllLines("data.csv");

            foreach (string line in lines)
            {
                string[] data = line.Split(',');
                string name = data[0];
                string price = data[1];

                Console.WriteLine($"{name} : {price}円");
            }
        }
    }
}

実行結果

りんご : 100円
みかん : 80円
ぶどう : 200円

処理の流れ

ステップ処理結果
1File.ReadAllLines全行を string[] で取得
2foreach で1行ずつ“りんご,100" など
3Split(',’)data[0]=りんご, data[1]=100
4変数に代入name, price で使う

電話帳データの例

名前と電話番号のCSVを読み込む例です。

data.txt

山田,090-1111-2222
佐藤,080-3333-4444
田中,070-5555-6666
string[] lines = File.ReadAllLines("data.txt");

foreach (string line in lines)
{
    string[] data = line.Split(',');
    string name = data[0];
    string phone = data[1];

    Console.WriteLine($"{name} : {phone}");
}

ファイルが存在しない場合

File.ReadAllLines は ファイルがないと例外が出ます。

対策

if (File.Exists("data.csv"))
{
    string[] lines = File.ReadAllLines("data.csv");
    // 処理
}
else
{
    Console.WriteLine("ファイルがありません");
}

1行目をヘッダーとしてスキップする

CSVの1行目がヘッダーの場合

string[] lines = File.ReadAllLines("data.csv");

// 2行目から処理(インデックス1から)
for (int i = 1; i < lines.Length; i++)
{
    string[] data = lines[i].Split(',');
    // 処理
}

よくあるエラー

区切り文字の間違い

line.Split(",");  // エラー:char が必要
line.Split(',');  // 正しい

列数が足りない行

// data[1] がない行があると例外
string price = data[1];

// 対策:列数チェック
if (data.Length >= 2)
{
    string price = data[1];
}

まとめ

C#でCSVを読み込む基本は

  • File.ReadAllLines で全行取得
  • Split(',’) で分割
  • data[0], data[1] で各列にアクセス

です。

複数件を管理するには 次の List を使うと便利です。


関連記事

前の記事

C# Splitメソッドの使い方|文字列を区切り文字で分割する方法

では Split の基本を解説しています。

次の記事

C# Listの使い方|複数データを管理する

では 読み込んだCSVデータを List で管理する方法を解説します。

訪問数 5 回, 今日の訪問数 5回

広告

C#

Posted by hidepon