以下のような感じで、CSV取り込み用クラスを作ってみました。
1行目にカラム名がある場合のCSVとかだと、もうちょっと工夫が必要ですね。
class CsvFileData
{
readonly public string filePath;
readonly public List<string[]> fileDataList = new List<string[]>();
public CsvFileData(string filePath)
{
// パスを保持
this.filePath = filePath;
// CSVを読み込んでデータをクラスに保持
this.fileDataList = ReadCSV(filePath);
}
private List<string[]> ReadCSV(string filePath)
{
// データ一時保管用
List<string[]> dataList = new List<string[]>();
// 確実にファイルを開放するためusingを利用
using (var reader = new StreamReader(filePath))
{
// 末尾まで繰り返す
while (!reader.EndOfStream)
{
// 1行を文字列として読み取り
string line = reader.ReadLine();
// カンマごとに分割して配列として保持
string[] values = line.Split(',');
// 分割した1行を一時保管用リストに追加
dataList.Add(values);
}
}
return dataList;
}
}
コメント