0
我想讀取一個巨大的文件。以前我用File.ReadLines
不會將整個數據讀入內存。現在我需要在迭代時訪問前一個&下一行。我試着閱讀整個文件,但得到了OutofMemoryException
。用指數快速讀取文件
然後我開始搜索解決方案,發現我可以使用Linq。我嘗試使用以下內容:
var inputLines = File.ReadLines(filePath);
int count = inputLines.Count();
for (int i = 0; i < count; i++)
{
string line = inputLines.Skip(i).Take(1).First();
}
這很慢。我認爲每次跳過,然後繼續,每次循環時都會一遍又一遍讀取所有行。
有沒有更好的方法來做到這一點?我現在唯一能想到的解決方案就是將我的文件分割成更小的塊,這樣我就可以讀取它,但我無法真正相信沒有解決方法。
我需要閱讀當前行我讀的從previousLine和nextLine。我想你的方式,但它會有點複雜。當我解析數據時,會有很多if語句。 – ykh
對不起,我剛剛意識到你還想要下一行。我更新了我的建議解決方案我相信你只需要單一的if語句吧? –