c# - 从大文本文件中读取随机行

标签 c# text-files

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

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

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

最佳答案

在 .NET 4.* 中,可以直接访问文件的一行。例如,要获取第 X 行:

string line = File.ReadLines(FileName).Skip(X).First();

完整示例:

var fileName = @"C:\text.txt"
var file = File.ReadLines(fileName).ToList();
int count = file.Count();
Random rnd = new Random();
int skip = rnd.Next(0, count);
string line = file.Skip(skip).First();
Console.WriteLine(line);

关于c# - 从大文本文件中读取随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32328620/

相关文章:

c# - 为什么具有ContinueWith选项的第二个线程不等待第一个线程的结束?

c# lambda 表达式 if condition inside a where

c# - 应用程序设置和 settings.settings 和 configurationmanagers.appsettings 哦,我的

c# - 通过 SSL 发送请求时无法发布文件数据

linux - 确定哪些关键字可以在哪些文件中找到

java - 我如何从 Java 8 中的文本文件中读取特定行?

比较文本文件中的字符串,然后打印整行

c# - 如何在我的工具提示上获得更厚的阴影?

scala - 在出现一定数量的错误后停止在 Apache Spark 中处理大型文本文件

C#分隔文本文件中的单词