1

区切られたファイルをDataTableに読み込む良い方法を探していて、このコードを見つけました。

    private void txtRead_Click(object sender, EventArgs e)
    {
        var filename = @"d:\shiptest.txt";
        var reader = ReadAsLines(filename);

        var data = new DataTable();

        //this assume the first record is filled with the column names
        var headers = reader.First().Split('\t');
        foreach (var header in headers)
        {
            data.Columns.Add(header);
        }

        var records = reader.Skip(1);
        foreach (var record in records)
        {
            data.Rows.Add(record.Split('\t'));
        }

        dgList.DataSource=data;
    }

    static IEnumerable<string> ReadAsLines(string filename)
    {
        using (var reader = new StreamReader(filename))
            while (!reader.EndOfStream)
                yield return reader.ReadLine();
    }

このコードは問題なく高速に動作しますが、テキストファイルに膨大なデータがある場合に上記のコードの効率がどうなるかについて興味があります。提案を探しています。ありがとう

4

0 に答える 0