2014-10-05 91 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