投稿

7月, 2023の投稿を表示しています

C#でCSVファイルを読み込む

C#でCSVファイルを読み込む C#でCSVファイルを読み込む 皆さんは CSVファイル を読み込んでデータ処理をするとき、どのようにファイル読み込みを行っていますでしょうか。 通常は下記のようなサンプルを流用し、ファイルを1行ずつ読み込み、 Split関数 などで分割することが多いかと思います。 private static List ReadFile(string path) { List list = new List (); using (StreamReader sr = new StreamReader(path)) { string line = ""; while ((line = sr.ReadLine()) != null) { list.Add(line); } } return list; } しかし、 CSVファイル はカンマ区切りだからといって、 Split関数 で分割してもうまく行かない場合があるのです。 CSVファイルは下記のようにデータ1つ1つをダブルクォーテーションで囲い、この中にカンマが合った場合でもそれを区切り文字としては扱わず1つのデータ(文字列)として扱う場合があります。 "りんご","ぶどう","みかん,もも","かき" こういった場合に、カンマで Split関数 を使用してしまうと、意図しない場所でデータが区切られ、データの整合性が合わなくなることがあります。 なので今回は、1つのデータをダブルクォーテーションで囲ったケースでも正常に読み取れるように自作のクラスを作成していきたいと思います。 独学故、「もっとこうするべき」といった意見があれば是非ご連絡ください! 自作メソッドの作成