C# C(夏普)从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

谁能告诉我如何从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[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。我的错,纠正了。这不起作用。。。您缺少了从线阵列中实际获取线的部分。还有,马克说的。可以处理任何大小的文件,并且不需要将整个文件读入内存。现在,为什么要麻烦地将所有行读入内存以获得计数,然后重新读取文件以获得所需的行?您可以读取所有行,然后从数组中选择。不要在每次调用时分配一个新的随机值,如果调用在时间上发生得太近,则结果不会是随机的。应改用线程静态随机。看见