从大文本文件中读取随机行

Ang*_*nes 8 c# text-files

我有一个5000多行的文件.我想找到每次运行程序时选择其中一行的最有效方法.我原本打算用随机方法选择一个(之前我知道有5000行).认为可能效率低下,所以我想我会看第一行,然后从顶部删除它并将其附加到底部.但似乎我必须读取整个文件并创建一个要从顶部删除的新文件.

什么是最有效的方法:随机方法或新文件方法?

该程序将每5分钟运行一次,我使用的是c#4.5

Joh*_*oco 0

我假设目标是从 5000 多行文件中随机选择一行。

尝试这个:

  1. 使用 File.ReadLines(file).Count() 获取行数。
  2. 使用行数作为上限生成随机数。
  3. 使用 File.ReadLines(file) 延迟读取文件。
  4. 使用随机数从该数组中选择一行。

编辑:正如所指出的,执行 File.ReadLines(file).toArray() 效率相当低。