随机化数组中值的位置

时间:2016-11-16 16:00:18

标签: c# arrays

我是编程初学者,目前正在学校学习C#。 我有一个任务是按照大小顺序制作一个包含1-20之间的每个数字的数组。然后随机化数字出现在数组中的顺序。 我尝试了不同的方法,但我似乎无法让它工作。 这就是我现在正在处理的事情:

        int random = 0;
        Random rNG = new Random();
        int[] twenty = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
        int[] check = new int[20];
        for (int i = 0; i < 20; i++)
        {
            random = rNG.Next(1, 21);
            foreach (int check2 in check)
            {
                if (random != check2)
                {
                    check[i] = random;
                    twenty[i] = random;
                    break;
                }
            }
        }

        foreach (int write in twenty)
        {
            Console.Write(write + ", ");
        }

在Visual Studio 2015中的控制台项目中进行编码。

提前感谢您的帮助/建议!

2 个答案:

答案 0 :(得分:0)

我想说,不要试图改变顺序,而是随意改变你访问索引的方式。

按顺序在数组中输入数字很好。如果您编写一些代码来随机访问select [Date], sum(case when [ActionCount] between 2 and 5 then 1 else 0 end) [#_of_people_who_did_action_2to5_times], sum(case when [ActionCount] between 6 and 10 then 1 else 0 end) [#_of_people_who_did_action_6to10_times], sum(case when [ActionCount] > 10 then 1 else 0 end) [#_of_people_who_did_action_more_than_10], sum(case when [ActionCount] > 1 then 1 else 0 end) [Total] from ( select distinct dt.[Date], dt.[Username], (select count(distinct [Date]) from OCCURRENCES cd where cd.[Username] = dt.[Username] and cd.[Date] <= dt.[Date]) [ActionCount] from OCCURRENCES dt ) a group by [Date] ,那么您将会产生相同的效果。

答案 1 :(得分:0)

考虑将rNGtwenty.OrderBy(/*hint something goes here*/).ToArray()结合使用。我不想给你一个确切的解决方案,因为它是你的作业,但你应该能够从那里弄明白。