2014-10-05 89 views
0

任何人都可以讓我知道在5 GB大小的文件中顯示行範圍的最快方式。例如:如果文件的大小爲5GB,並且行號具有文件中的某一列。說一個文件中的行數是100萬,我有開始索引行號和結束索引行號。假設我想閱讀第25行到第89行的一個大文件,而不是閱讀每一行,是否有任何最快的方式從第25到第89讀取特定行,而無需從C#開始讀取整個文件#從文件中讀取行的範圍

+0

爲什麼你有行號?你是否需要列_列號_或者你能計算每一行? – 2014-10-05 22:01:47

回答

1

In簡而言之,不。在實際閱讀之前,你怎麼可能知道回車/行號是在哪裏?

爲避免你可以記憶的問題:

File.ReadLines(path) 
    .SkipWhile(line=>someCondition) 
    .TakeWhile(line=>someOtherCondition) 

5GB是一個龐大的數據量,而不建立某種指數的去篩選。我認爲你已經偶然發現了將數據加載到數據庫並添加適當索引的情況,可能會爲你提供最好的服務。

+0

OP有一個應該使用的列_line number_。 – 2014-10-05 22:02:56

+0

@TimSchmelter ......好吧,那隻會增加問題,對吧? – spender 2014-10-05 22:03:21

+0

如果從文件內存流中讀取行號,我們可以決定尋找特定的行。是否有意義 – user145610 2014-10-06 11:20:03