【備忘】C#でCSV読み込みクラスを作ってみた

C#

以下のような感じで、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;
        }
    }

コメント

タイトルとURLをコピーしました