如何从随机数组中选择一个随机字符串

Posted

技术标签:

【中文标题】如何从随机数组中选择一个随机字符串【英文标题】:How to pick a random string from random array 【发布时间】:2020-10-04 08:32:17 【问题描述】:

我从 28 中选择了 10 个随机数组,现在我试图从 10 中选择一个随机 1,但似乎无法弄清楚如何。这是我的代码:

            Random rand = new Random();



        int[] array = new int[10];
        int count = 0;


        for (int i = 0; i < array.Length; i++)
        
            int final = rand.Next(28);
            while (final == array[0] || final == array[1] || final == array[2] || final == array[3] || final == array[4] || final == array[5] || final == array[6] || final == array[7] || final == array[8] || final == array[9])
            
                final = rand.Next(10);

            
            array[i] = final;
            count++;
            Console.WriteLine($"#count player array[i]");
            string finalists = names[final].firstname.ToString();
            Console.WriteLine($"Finalist: finalists");
            Thread.Sleep(2000);

        

非常感谢您的帮助

【问题讨论】:

您是否尝试过类似array[rand.Next(10)] 的方法来从最初的随机十中获得最终的随机选择?顺便说一句,获取十个数字的更有效方法可能是生成一个包含 0-28 之间所有数字的列表,将列表打乱,然后取前十个项目。见:***.com/q/273313/491907 您还可以按 Guid 值排序并选择前 10 个元素。 OrderBy Guid.NewId() @SteinTheRuler - 不要使用 Guids 随机性。它们只保证是唯一的,而不是随机的。 @Enigmativity 如果它给你一个可接受的结果,你可以随机使用 Guid。你也可以使用其他元素。 @SteinTheRuler - 当然,但您没有对您的评论做出免责声明。 “你也可以使用其他元素”是什么意思? 【参考方案1】:

这对你有用吗?

// make an array of 28 names
string[] names =
    Enumerable
        .Range(0, 28)
        .Select(x => $"Person x + 1")
        .ToArray();

Random rand = new Random();

// select 10 at random
string[] random10 =
    names
        .OrderBy(x => rand.Next())
        .Take(10)
        .ToArray();

//pick one at random from the 10 selected at random
string finalist = random10[rand.Next(random10.Length)];

【讨论】:

以上是关于如何从随机数组中选择一个随机字符串的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 从字符串数组中选择一个随机值

如何从数组中删除随机元素。 Python

从数组中选择一个随机字符串[重复]

如何从 C# 中的两个数组中获取两个随机字符串

Unity & C# - 从数组中选择一个随机字符串

从数组中选择一个随机字符串[重复]