从文件中选择随机数据

时间:2009-11-02 23:36:40

标签: c# file-io random

我正在学习C#,现在我需要构建一个家庭项目(只是为了学习如何使用文件I / O和随机)。我有一个像这样的文件(names.txt):

Nathan
John
Max
Someone

但我如何访问此文件(已知)并选择一个随机名称,打印并从文件中删除此名称?感谢。

2 个答案:

答案 0 :(得分:4)

您肯定需要从文件中删除名称吗?或者你可以从内存列表中删除它吗?

无论如何,我会以这种方式分离任务:

  • 加载文件中的文字,例如File.ReadAllLines
  • 转换为允许您删除元素的List<string>
  • 创建System.Random
  • 的新实例
  • 使用Random.Next()
  • 选择随机元素
  • 从列表中提取(并删除)名称
  • 打印名称
  • 使用File.WriteAllLines
  • 写回文件

既然您已了解所涉及的步骤,请了解每个步骤 - 如果您遇到问题,请询问有关特定问题的更多详细信息。

答案 1 :(得分:2)

试试这个:

using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

namespace Tests.Console
{
    class Program
    {
        static void Main(string[] args)
        {
            string fileName = "c:\\toto.txt";
            var content = File.ReadAllLines(fileName).ToList();
            var selected = content[new Random().Next(0, content.Count)];

            Debug.Write(selected);

            content.Remove(selected);
            File.WriteAllLines(fileName, content.ToArray());
        }
    }
}