区切られたファイルを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();
}
このコードは問題なく高速に動作しますが、テキストファイルに膨大なデータがある場合に上記のコードの効率がどうなるかについて興味があります。提案を探しています。ありがとう