有谁能告诉我如何从txt文件中读取随机行?我想从txt文件中读取随机行并仅在textBox中显示该行。代码示例将非常有帮助!谢谢!
有谁能告诉我如何从txt文件中读取随机行?我想从txt文件中读取随机行并仅在textBox中显示该行。代码示例将非常有帮助!谢谢!
var lines = File.ReadAllLines(path);
var r = new Random();
var randomLineNumber = r.Next(0, lines.Length - 1);
var line = lines[randomLineNumber];
new Random()
,如果调用发生得太接近,结果将不是随机的。 应该使用线程静态的 Random
。请参见 Random number generator only generating one random number。 - dbc最简单的解决方案是将所有行读入内存,然后随机选择一行。假设所有行都可以放入内存中。
string[] allLines = File.ReadAllLines(path);
Random rnd1 = new Random();
Console.WriteLine(allLines[rnd1.Next(allLines.Length)]);
int lineCount = File.ReadAllLines(@"C:\file.txt").Length;
Random rnd = new Random();
int randomLineNum = rnd.Next(lineCount);
int indicator = 0;
using (var reader = File.OpenText(@"C:\file.txt"))
{
while (reader.ReadLine() != null)
{
if(indicator==randomLineNum)
{
//do your stuff here
break;
}
indicator++;
}
}
ReadAllLines
直接从数组中选择,避免重复读取文件。 - Jim Mischel