随机字符串生成器C#

时间:2013-10-22 14:32:40

标签: c# string random generator

我制作了一个简单的数字生成器,我有一个问题:生成器是否可以弹出“红色”,“蓝色”,“绿色”,“黄色”和“白色”而不是数字1- 5?

namespace zufallsgenerator
{
    public partial class Form1 : Form
    {
        Random r = new Random();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void btnWhlie_Click(object sender, EventArgs e)
        {
            int summe = 0, z; 

            lblAnzeige.Text = " ";

           while (summe <= 0)
           {
                z = r.Next(1, 6);
                summe = summe + z;
           }
           lblAnzeige.Text += summe + "\n";               
        }
    }
}

6 个答案:

答案 0 :(得分:11)

您可以创建一个简单的数组,并使用随机生成的索引访问它,例如:

var r = new Random();
string[] colors = {"red", "blue", "green", "yellow", "white"};
var random_color = colors[r.Next(colors.Length)];

答案 1 :(得分:3)

您可以使用enum

定义类似

的内容
enum Color
{
   Red,
   Green,
   Blue
}

然后你可以将你的int转换为:

Color color = (Color)r.Next(1, 6)

并且,如果你愿意

Text = color.ToString();

答案 2 :(得分:2)

如果得到1-5的输出,你可以创建包含5个元素的字符串[]

string[] colors = new string[] { "red", "blue", "green", " yellow", "white" }

而不是检索r.Next( 1, 6 ),您可以检索colors[ r.Next( 0, 5 ) ](因为字符串数组是0索引的,更改了最小值和最大值)。

答案 3 :(得分:1)

考虑到Xi Huan的回答,你可以使用扩展方法使它更漂亮:

public static T Next<T>(this System.Random Random, params T[] List)
{
    if(List.Length==0)
        return default(T);
    return List[Random.Next(0, List.Length)];
}

然后调用它只是:

var r=new System.Random();
var randon_color = r.Next("red", "blue", "green", "yellow", "white");

答案 4 :(得分:0)

我要做的是创建一个字符串列表。然后把随机数作为i。所以喜欢  List<string> list1 = new List<string>{"red", "blue", "green"};然后使用这样的随机数来调用它的随机元素。 list1[randomNumber];

答案 5 :(得分:0)

使用可能的期望输出值定义一个数组,而不是将summe连接到文本,添加YourArrayOfNamedValues [summe]