C# CSVファイルを読み込む方法|Split + File.ReadAllLines
C#でCSVファイルを読み込むには File.ReadAllLines と Split を組み合わせます。
例えば次のようなCSVがあります。
山田,090-1111-2222
佐藤,080-3333-4444
田中,070-5555-6666
このデータを読み込み 名前と電話番号に分割して扱う方法を解説します。
目次
C# CSV読み込みの基本
CSV読み込みの流れは
- File.ReadAllLines で全行を読み込む
- 各行を Split(',’) で分割する
- 分割結果を変数やクラスに代入する
です。
基本構文
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円
処理の流れ
| ステップ | 処理 | 結果 |
|---|---|---|
| 1 | File.ReadAllLines | 全行を string[] で取得 |
| 2 | foreach で1行ずつ | “りんご,100" など |
| 3 | Split(',’) | 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回




ディスカッション
コメント一覧
まだ、コメントがありません