【发布时间】:2014-10-28 09:27:59
【问题描述】:
我有一个非常大的 CSV 文件,大约有 1,000,000 行,它需要大约 500 MB 的内存。我不必阅读所有文件。我想从文件中读取每一百行。我尝试通过ReadLines来做,但它真的很慢,更快的是ReadAllLines。
我的代码:
for (int i = 0; i < 10000; i++)
{
tableOfString[i]=File.ReadLines("TestCSV.csv").Skip(i*100).Take(1).First();
//or
tableOfString[i] = File.ReadLines("TestCSV.csv").ElementAtOrDefault(i*100);
}
我读到一些读者:
有人有解决办法吗?我只想从 CSV 中读取某些行,而不是整个文件。
【问题讨论】:
-
全部存储在一个字符串[]中,而不是使用
File.ReadLines。您可以使用File.ReadAllLines。File.ReadLines返回一个 IQueryable,所以当你访问它时,你会查询所有行。 -
你是说不想将整个文件读入内存?
-
File.ReadLines("TestCSV.csv").ElementAtOrDefault(i * 100);
标签: c# performance csv readline