随机单词选择器选择相同字母的序列?

时间:2018-10-13 04:51:58

标签: c# random console-application generator

我正在制作一个可以在控制台中运行的简单的子手游戏。我创建了一种从列表中选择随机单词的方法,稍后将其用作答案。我创建了此方法来做到这一点:

public static string GetWord()
{
    Random random = new Random();
    string[] words = new string[5]{"a", "b", "c", "d", "e"};
    return words[random.Next(5)];
}

我通过使用for循环将方法循环100次来测试了该方法:

static void Man(string[] args)
{
    for(int i = 0; i <101; i++)
    {
        Console.WriteLine(GetWord());
    }
}

我希望得到一组随机的字母作为输出。但是,当我运行程序时,情况并非如此。相反,我得到一些类似于:

  

d       d       d       d       d       d       d       d       d       d       d       d       d
      d       d       d       C       C       C       C       Ë       Ë       Ë       Ë       e
      Ë       d       d       d       d       d       一种       一个
      一种       一种       一种       一种       一种       一种       一种       b       b       b       b       b       b       b       b       b       b
      b       c c c c c e e e e e e d d a d a d a d a d a d d d d c c c c c c c c c c e c

这是我做错了吗?如果是这样,我该怎么解决?预先谢谢你

1 个答案:

答案 0 :(得分:1)

尝试:

private static readonly Random Random = new Random();

public static string RandomString(int length)
{
    const string chars = "abcde";
    return new string(Enumerable.Repeat(chars, length).Select(s => s[Random.Next(s.Length)]).ToArray());
}

static void Man(string[] args)
{
   Console.WriteLine(RandomString(100));
}

enter image description here