【问题标题】:C# (sharp) reading random line from txt file [duplicate]C#(尖锐)从txt文件中读取随机行[重复]
【发布时间】:2011-04-27 05:02:36
【问题描述】:

谁能告诉我如何从 txt 文件中读取随机行?我想从 txt 文件中读取随机行并在 textBox 中仅显示该行。 代码示例会很棒! 感谢转发

【问题讨论】:

标签: c# random line text-files


【解决方案1】:
var lines = File.ReadAllLines(path);
var r = new Random();
var randomLineNumber = r.Next(0, lines.Length - 1);
var line = lines[randomLineNumber];

【讨论】:

【解决方案2】:

最简单的解决方案是将所有行读入内存并随机选择一个。假设所有行都可以放入内存。

string[] allLines = File.ReadAllLines(path);
Random rnd1 = new Random();
Console.WriteLine(allLines[rnd1.Next(allLines.Length)]);

【讨论】:

  • 数组没有 Count 属性...
  • 谢谢马克。我的错,纠正它。
  • 这不起作用...您缺少实际从线阵列中获取线的部分。还有,马克说的。
【解决方案3】:

这是一个代码示例:

        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 然后从数组中选择。
猜你喜欢
  • 2017-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
相关资源
最近更新 更多