C# C(夏普)从txt文件中读取随机行
谁能告诉我如何从txt文件中读取随机行?我想从txt文件中读取随机行,并在文本框中仅显示该行。 代码示例将是伟大的!C# C(夏普)从txt文件中读取随机行,c#,random,line,text-files,C#,Random,Line,Text Files,谁能告诉我如何从txt文件中读取随机行?我想从txt文件中读取随机行,并在文本框中仅显示该行。 代码示例将是伟大的! Thanx in foward最简单的解决方案是将所有行读取到内存中,然后随机选择一行。假设所有行都可以放入内存中 var lines = File.ReadAllLines(path); var r = new Random(); var randomLineNumber = r.Next(0, lines.Length - 1); var line = lines[rando
Thanx in foward最简单的解决方案是将所有行读取到内存中,然后随机选择一行。假设所有行都可以放入内存中
var lines = File.ReadAllLines(path);
var r = new Random();
var randomLineNumber = r.Next(0, lines.Length - 1);
var line = lines[randomLineNumber];
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++;
}
}
数组没有计数属性…谢谢Mark。我的错,纠正了。这不起作用。。。您缺少了从线阵列中实际获取线的部分。还有,马克说的。可以处理任何大小的文件,并且不需要将整个文件读入内存。现在,为什么要麻烦地将所有行读入内存以获得计数,然后重新读取文件以获得所需的行?您可以读取所有行,然后从数组中选择。不要在每次调用时分配一个新的随机值,如果调用在时间上发生得太近,则结果不会是随机的。应改用线程静态随机。看见