随机播放1到4的数字而不重复并与用户输入进行比较

时间:2015-01-11 01:24:43

标签: c# random shuffle

我一直在寻找解决方案,但我无法理解那些复杂详细的算法,因为我在c#中相当新,现在我正在尝试创建这个程序。 我希望随机数生成器生成1到4,它不会重复相同的数字 4个不同的文本框,但当我执行如下代码时: -

        Random random = new Random();
        var numberNo = Enumerable.Range(1, 4);
        var shuffled = numberNo.OrderBy( a => random.NextDouble());
        txtrnd1.Text = String.Join("",shuffled);
        txtrnd2.Text = String.Join("",shuffled);
        txtrnd3.Text = String.Join("",shuffled);
        txtrnd4.Text = String.Join("",shuffled);

我获得的结果是(对于4个文本框:textbox1将显示" 1342",textbox2将显示" 1234"等)在文本框中 但我想要的4个文本框的结果是(例如textbox1将显示" 1" textbox2将显示" 2"等)在4个不同的文本框中,以便我可以比较它用户输入我在我的另一个程序中做了

        int intrandomnumber1;
        Random randomnumber = new Random();
        intrandomnumber1 = randomnumber.Next(1, 10);
        userinput1.Text = Convert.ToString(intrandomnumber1);

提前感谢任何帮助和感谢!

1 个答案:

答案 0 :(得分:0)

如果您查看每个文本框中的文本,您会发现它们都包含1-4的完整列表,随机排列。因此,您应该遍历shuffled一次以获取列表。

最简单的方法是从枚举中创建System.Collections.Generic.List<int>

List<int> shuffledList = new List<int>(shuffled);