如何轻松随机化数组?

时间:2016-11-05 10:27:18

标签: c#

在我的最后一个问题完全死亡后,我想问一个问题:

我怎么能轻易地在我的代码中实现一个数组随机数发生器:

private void button9_Click(object sender, EventArgs e)
{
    axSkype1.CurrentUserProfile.MoodText = ();
}

这是我的代码,我正在使用skype4comlib,所以不要担心,但我想找到一种方法,我可以将用户Skype'心情'设置为数组的随机元素,如“我失败了在编码时,慢棕羊跳过狐狸“是的哦,我也要把它连接到一个5分钟的计时器但是我可以做到但不是阵列。

3 个答案:

答案 0 :(得分:1)

您可以使用以下表达式作为数组的索引:new Random().Next(0,SIZE_OF_YOUR_ARRAY)

因此,如果你的数组被称为MoodTexts,你可以使用类似的东西:

String randomText = MoodTexts[new Random().Next(0,MoodTexts.Length)];

答案 1 :(得分:0)

    private void button9_Click()
    {
        string messages = "I am failing at coding,The Slow Brown Sheep jumped over the fox,Message3,Message4, Message5";
        string[] messagesArray = messages.Split(new Char[] { ',' });
        axSkype1.CurrentUserProfile.MoodText =messagesArray[new Random().Next(0,messagesArray.Length)].ToString();
    }

或者您可以使用一种方法从"消息中返回随机字符串"字符串:

    private void button9_Click()
    {
        string messages = "I am failing at coding,The Slow Brown Sheep jumped over the fox,Message3,Message4,Message5";
        axSkype1.CurrentUserProfile.MoodText =GetRandomMessage(messages);
    }

    string GetRandomMessage(string messages)
    {
        string[] messagesArray = messages.Split(new Char[] { ',' });
        return messagesArray[new Random().Next(0, messagesArray.Length)].ToString();
    }

答案 2 :(得分:0)

创建一个私有成员作为Random类的实例。

var random = new Random ();

然后在需要时使用它来获取新的随机数。

random.Next(0, messagesArray.Length)

这将返回0和数组长度减去1之间的随机数,您可以使用该数字随机索引到数组中。

创建Random类的单个实例很重要。如果一遍又一遍地重新创建Random类,则值的随机性可能不像您所希望的那样随机。

https://msdn.microsoft.com/en-us/library/system.random.aspx