読者です 読者をやめる 読者になる 読者になる

ネット偽善者でもいいじゃない

悩んでるなら面白いマンガ読もう

C#でテキストファイルから1行ずつ読み込んで配列に格納する

プログラミング C#

C#でテキストファイルから1行ずつ読み込んで配列に格納する方法

参考 http://smdn.jp/programming/netfx/collections/2_generic_1_list/

配列と言えばArrayであるし

C#の配列について調べていたらArrayListクラスというのがよく出てくるが

これはC#の初期で使用されていたクラスみたいで(今も使えるみたいですが)

どうやら.NET2.0からはジェネリッククラスのListというのを用いるみたいです

ArrayListとListの違い http://cabbalog.blogspot.jp/2014/07/list-vs-arraylist.html

このへんがよくわからなくて躓いてしまった

ではどうやってやるか?を以下まとめてみました

普段はListのほうを使っておけばよいのかな、という印象です

Listを使って、テキストファイルから1行ずつ読み込んで配列に要素を格納する方法

test.txtというファイルから1行ずつstring型で読み込んでみる 読み込んだ後、MessageBox.Show()で結果を表示してみる

例えばtest.txtの中身が

2015/09/25 15:12:09 あああああ

2015/09/26 09:23:11 いいいいい

2015/09/29 19:09:00 ううううう

で、Dドライブのすぐ下にファイルを置いていた場合

using System;
using System.Collections.Generic;

class Sample
{
    static void Main()
    {
        using (System.IO.StreamReader file = new System.IO.StreamReader(@"D:¥test.txt", System.Text.Encoding.UTF-8))
        {
            string line = "";
            List<string> list = new List<string>();         //空のListを作成する

            // test.txtを1行ずつ読み込んでいき、末端(何もない行)までwhile文で繰り返す
            while ((line = file.ReadLine()) != null)
            {
                list.Add(line);
            }
            MessageBox.Show(list[0]);  // 2015/09/25 15:12:09 あああああ
            MessageBox.Show(list[1]); // 2015/09/26 09:23:11 いいいいい
            MessageBox.Show(list[2]);  // 2015/09/29 19:09:00 ううううう

            // 配列の長さがわからない場合はforeachで回す
            foreach (var item in list)
            {
                MessageBox.Show(item);
            }
        }
    }
}

となります

コンソールアプリケーションだったら、MessageBox.ShowのところはConsole.WriteLineに書き換えてみてください(たぶんいけるはず)