基本情報
料金
期間
転職サポート
講師
  名前 評価 リンク

テックアカデミーロゴ

【最短で学ぶなら】

本サイト人気No.1
テックアカデミー

4.76点

公式
評判

DMM WEBCAMPロゴ

【離職率1%】

DMM WEBCAMP

4.66点

公式
評判
動画編集なら AIMクリカレ 4.63点 公式
評判
  料金 分割払い リンク

テックアカデミーロゴ

【最短で学ぶなら】

185,900円〜
※給付金制度あり
月々約7,746円〜 公式
評判

DMM WEBCAMPロゴ

【離職率1%】

169,800円~
※給付金制度あり
月々約7,075円〜 公式
評判

動画編集なら

AIMクリカレ

700,000円 月々約29,116円〜 公式
評判
  期間 リンク

テックアカデミーロゴ

【最短で学ぶなら】

4~16週間 公式
評判

DMM WEBCAMPロゴ

【離職率1%】

4~24週間 公式
評判
AIMクリカレ 180日間 公式
評判
  転職サポート リンク

テックアカデミーロゴ

【業界最大手】

公式
評判

DMM WEBCAMPロゴ

【離職率1%】

公式
評判
AIMクリカレ × 公式
評判
  講師                     リンク
テックアカデミーロゴ 全員が実務経験3年以上の現役エンジニア 公式
評判
DMM WEBCAMPロゴ 実務経験豊富な現役エンジニア 公式
評判
AIMクリカレ 現役で活躍するプロ講師 公式
評判

IT

【C#入門】CSV読み込みする方法を現役エンジニアが解説【コピペOK】

本記事でわかること

  • C#を使ってCSVファイル読み込みする方法
  • 特殊なCSVデータを読み込む場合

「C#を使ったCSVファイル読み込み処理を作りたい」

「特殊なデータでも読み込める方法を知りたい」

そんな方向けに、C#のサンプルコード付きで解説します。

「C#をなるべく早く習得したい」

「C#でゲーム開発もできるようになりたい」

そんなゲームエンジニア志望のあなたは、

ゲーム開発エンジンであるUnityも合わせて学ぶ一択!

プログラミングスクール『TechAcademy(テックアカデミー)』では、C#を学べる『Unityコース』がある。

まだ、Unityをかじってもいないならば、無料でできる受講体験から始めてみよう。

\最短1分で申込も可能/

まずは、サイトを見てみる

※無料体験実施中

Unityコースの内容について詳しく知りたい方はこちらの記事も合わせてご覧ください。

【テックアカデミー】Unityコースでゲームエンジニアに転職しよう

C#を使ってCSVファイル読み込みする方法

C#を使ってCSVファイル読み込みする方法

C#を使ってCSVファイル読み込みする方法は以下2つです。

CSV読み込みする方法

  1. StreamReaderを使用して読み込む
  2. TextFieldParserを使用して読み込む

1.StreamReaderを使用して読み込む

CSVファイルをC#で読み込むために、StreamReaderを使用する方法があります。

StreamReaderはテキストファイルを行単位で読み込むのに適しています。

サンプルコードは以下の通り。

using System;
using System.IO;

class FileOperation
{
    static void ReadCsvFile()
    {
        // CSVファイルのパスを指定
        string filePath = "sample.csv";

        try
        {
            // StreamReaderを使用してファイルを開く
            using (StreamReader reader = new StreamReader(filePath))
            {
                while (!reader.EndOfStream)
                {
                    // 1行ずつ読み込む
                    string line = reader.ReadLine();

                    // CSVのカラムを分割
                    string[] values = line.Split(',');

                    // 各カラムのデータを処理する
                    foreach (string value in values)
                    {
                        Console.Write(value + "\t");
                    }
                    Console.WriteLine();
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("エラー: " + e.Message);
        }
    }
}

このコードを使うことで、指定されたCSVファイルを1行ごとに読み取って、各カラムの値を出力することができます。

 

2.TextFieldParserを使用して読み込む

TextFieldParserクラスを使用する方法でもCSVファイル読み込みができます。

TextFieldParserは、CSVファイルをパースするための高レベルなツールで、カンマ区切りのデータを簡単に読み込み、フィールドごとにアクセスできます。

ファイルのオープン、データの読み取り、そして最後にクローズといったステップが簡単に実行できるため、CSVファイルの処理に便利です。

この方法を選ぶと、煩雑なCSVパースコードを自分で書く必要がないため、効率的で保守的なコードを作成できます。

 

サンプルコードは以下の通り。

using System;
using Microsoft.VisualBasic.FileIO;

class FileOperation
{
    static void ReadCsvFile()
    {
        // CSVファイルのパスを指定
        string filePath = "sample.csv";

        try
        {
            using (TextFieldParser parser = new TextFieldParser(filePath))
            {
                parser.TextFieldType = FieldType.Delimited;
                parser.SetDelimiters(",");

                while (!parser.EndOfData)
                {
                    // 1行ずつ読み込む
                    string[] fields = parser.ReadFields();

                    // 各カラムのデータを処理する
                    foreach (string field in fields)
                    {
                        Console.Write(field + "\t");
                    }
                    Console.WriteLine();
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("エラー: " + e.Message);
        }
    }
}

CSVファイルを読み込んで、指定されたデリミタ(カンマ)でデータを分割して各カラムの値を出力できます。

この方法は、CSVファイルのパースやエラーハンドリングが簡単であり、より高度なCSV処理に適しています。

~当サイト実績(ランキング)~

当サイトから下記コンテンツ購入実績

コンテンツ名 公式サイト 評判・口コミ
1位 普通女子大生
フォロワー6万人
インスタの
収益化までの
全ノウハウ
公式サイトを見る
現在
:31件
評判を見る
2位 ブログスクール
WEBキャン【TikTok3.2万人が登録】
公式サイトを見る
現在
:6件
割引を見る
3位 【未経験者でも
”たったの21日”
で20万円稼げた!
『低単価アパレル×
ヤフオク1スタ』
完全攻略マニュアル
公式サイトを見る
現在
:12件
評判を見る
4位 AIMクリエイターズカレッジ
【動画編集の最高峰】
ランサーズと提携
公式LINEを見る
現在
:14件
評判を見る
5位 アオの
案件獲得スクール
【動画編集:営業】
公式サイトを見る
現在
:7件
評判を見る
PR ただいま、
スペシャルPR案件
をいただいており
大型クーポン
・特典つきスクール
(SNS運用・物販・動画編集・
ブログ関連)
クローズド3件あり
クーポンを見る ←クーポン
と返信!

IT関係の方に特にオススメなのはやっぱりブログです。

公式LINEではクーポンやお仕事のお悩み相談も実施しているので、休みの日や仕事後など副業の相談してみること!まずは行動から!

普通女子大生フォロワー6万人インスタの収益化までの全ノウハウ を購入

今はInstagramフォロワー4200人、TikTokは34,000人フォロワーがいます。

WEBキャン

TikTok   WEBキャン

Instagram WEBキャン

特殊なCSVデータを読み込む場合

データをダブルコーテーション(")で囲ってる場合

データをダブルコーテーション(")で囲ってる場合、CsvHelperライブラリを使用することで簡単に読み込みができます。

以下サンプルコードのように、囲み文字(Quote)を指定することでエスケープして正しく解釈します。

using System;
using System.IO;
using System.Text;
using CsvHelper;
using CsvHelper.Configuration;

public class CsvRecord
{
    [Name("Column1")]
    public string Field1 { get; set; }
    [Name("Column2")]
    public string Field2 { get; set; }
}
class FileOperation
{
    static void ReadCsvFile()
    {
        using (var reader = new StreamReader("sample.csv"))
        using (var csv = new CsvReader(reader, new CsvConfiguration(CultureInfo.InvariantCulture)
        {
            Delimiter = ",",
            Quote = '"'
        }))
        {
            var records = csv.GetRecords<CsvRecord>().ToList();
            foreach (var record in records)
            {
                Console.WriteLine($"Field1: {record.Field1}, Field2: {record.Field2}");
            }
        }
    }
}

 

データの中にカンマ(,)が存在する場合

データの中にカンマ(,)が存在する場合の読み込み方法について解説します。

例えば、以下のようなデータがあったとしましょう。

Name,Description,Price

Product 1,\"This product, with a comma\",100

Product 2,Another product,50

 

データ内にカンマがある場合は、ダブルクォーテーションで囲うことで区切りを明確にします。

サンプルコードは以下の通り。

using System;
using System.IO;
using System.Globalization;
using CsvHelper;
using CsvHelper.Configuration;

class FileOperation
{
    static void ReadCsvFile()
    {
        var csvText = "Name,Description,Price\n" +
                      "Product 1,\"This product, with a comma\",100\n" +
                      "Product 2,Another product,50";

        using (var reader = new StringReader(csvText))
        using (var csv = new CsvReader(reader, new CsvConfiguration(CultureInfo.InvariantCulture)
        {
            HasHeaderRecord = true,
        }))
        {
            var records = csv.GetRecords<Product>();
            foreach (var record in records)
            {
                Console.WriteLine($"Name: {record.Name}, Description: {record.Description}, Price: {record.Price}");
            }
        }
    }
}

public class Product
{
    public string Name { get; set; }
    public string Description { get; set; }
    public decimal Price { get; set; }
}

 

区切り文字がタブの場合

区切り文字がタブの場合の読み込み方法について解説します。

例えば、以下のようなデータがあったとしましょう。

Name\tDescription\tPrice

Product 1\tThis is a product\t100\n

Product 2\tAnother product\t50

※「\t」がタブのことです。

 

サンプルコードは以下の通り。

using System;
using System.IO;
using CsvHelper;
using CsvHelper.Configuration;

class FileOperation
{
    static void ReadCsvFile()
    {
        var csvText = "Name\tDescription\tPrice\n" +
                      "Product 1\tThis is a product\t100\n" +
                      "Product 2\tAnother product\t50";

        using (var reader = new StringReader(csvText))
        using (var csv = new CsvReader(reader, new CsvConfiguration(System.Globalization.CultureInfo.InvariantCulture)
        {
            Delimiter = "\t", // タブを区切り文字として設定
            HasHeaderRecord = true,
        }))
        {
            var records = csv.GetRecords<Product>();
            foreach (var record in records)
            {
                Console.WriteLine($"Name: {record.Name}, Description: {record.Description}, Price: {record.Price}");
            }
        }
    }
}

public class Product
{
    public string Name { get; set; }
    public string Description { get; set; }
    public decimal Price { get; set; }
}

まとめ

今回は、『【C#入門】CSV読み込みする方法を現役エンジニアが解説【コピペOK】』というテーマでお話してきました。

「C#を使ったCSVファイル読み込み処理を作りたい」

「特殊なデータでも読み込める方法を知りたい」

そんな方の参考になっていたら幸いです。

「C#をなるべく早く習得したい」

「C#でゲーム開発もできるようになりたい」

そんなゲームエンジニア志望のあなたは、

ゲーム開発エンジンであるUnityも合わせて学ぶ一択!

プログラミングスクール『TechAcademy(テックアカデミー)』では、C#を学べる『Unityコース』がある。

まだ、Unityをかじってもいないならば、無料でできる受講体験から始めてみよう。

\最短1分で申込も可能/

まずは、サイトを見てみる

※無料体験実施中

Unityコースの内容について詳しく知りたい方はこちらの記事も合わせてご覧ください。

【テックアカデミー】Unityコースでゲームエンジニアに転職しよう

本記事は以上となります。

当サイト実績(ランキング)

当サイトから下記コンテンツ購入実績

コンテンツ名 公式サイト 評判・口コミ
1位 普通女子大生
フォロワー6万人
インスタの
収益化までの
全ノウハウ
公式サイトを見る
現在
:31件
評判を見る
2位 ブログスクール
WEBキャン【TikTok3.2万人が登録】
公式サイトを見る
現在
:6件
割引を見る
3位 【未経験者でも
”たったの21日”
で20万円稼げた!
『低単価アパレル×
ヤフオク1スタ』
完全攻略マニュアル
公式サイトを見る
現在
:12件
評判を見る
4位 AIMクリエイターズカレッジ
【動画編集の最高峰】
ランサーズと提携
公式LINEを見る
現在
:14件
評判を見る
5位 アオの
案件獲得スクール
【動画編集:営業】
公式サイトを見る
現在
:7件
評判を見る
PR ただいま、
スペシャルPR案件
をいただいており
大型クーポン
・特典つきスクール
(SNS運用・物販・動画編集・
ブログ関連)
クローズド3件あり
クーポンを見る ←クーポン
と返信!

IT関係の方に特にオススメなのはやっぱりブログです。

公式LINEではクーポンやお仕事のお悩み相談も実施しているので、休みの日や仕事後など副業の相談してみること!まずは行動から!

普通女子大生フォロワー6万人インスタの収益化までの全ノウハウ を購入

今はInstagramフォロワー4200人、TikTokは34,000人フォロワーがいます。

WEBキャン

TikTok   WEBキャン

Instagram WEBキャン

スクール選びに迷ったらテックアカデミー!

テックアカデミーは、料金や講師の質、転職サポート、これまでの実績など総合的にもっともオススメできるプログラミングスクールです。

現役エンジニアとして10年以上プログラミングやシステム開発に携わった経験、メディア運営者としてプログラミングスクール30社以上比較・レビューしてきた経験から自信を持って推奨します。

強いてデメリットを挙げるとしたら『オンライン対応のみ』ってことくらい。

「オフラインで直接指導を受けたい」といった方以外はテックアカデミーを選んでおけば間違いありません!

受講前に無料相談を受けることもできるので、「初心者でも大丈夫か?」「副業で稼げるのか?」といった疑問にもしっかり答えてもらえますよ。

テックアカデミー公式サイトを見る

  • この記事を書いた人

Pro navi編集部

プログラミングスクール「Pro navi」は、プログラミング業界初の"コーチング型"教室です。 一人ひとりのニーズに合わせた課題を精選し、より効率的にプログラミングを学習することができます。 当教室では、実践的なスキルの習得を目指し、各個人の成長を全力でサポートしております。 本サイトではスクール運営の実績と経験からプログラミングスクール選びに迷ってる方に向けて、ベストな選択ができるように有益な情報を発信していきます。

-IT

© 2020 プログラミングガイド by pronavi

プログラミングスクールの最新キャンペーン・割引情報をまとめました。損したくない人必見!
お得にプログラミングを学ぶ
お得なキャンペーン情報を見る