创建随机数组字符串类型
本文关键字:类型 字符串 数组 随机 创建 | 更新日期: 2023-09-27 18:06:25
我正在制作一个程序,生成人,精灵和其他种族等的描述。
它涉及到很多数组和列表,从其中选择一个单词,然后放入一个句子。一个示例数组如下所示:
public string[] hairfront = {
"side swept bangs", "straight bangs", "choppy bangs", "wispy bangs",
"parted straight bangs", "parted choppy bangs", "blunt single length bangs",
"bangs shorter on one side than the other", "pixi cut bangs"}
然后随机类将选择一个数字并返回相应的字符串,无论我有RAE(array name)
示例:"The person has " + RAE(hairfront)
我想让RAE作为一个数组类型,它将有一个方法,选择一个随机字符串放入句子。
下面的伪代码描述了我想要的代码的样子:
new RAE(hair)={ "blah", "brown", "long"}
Public string generate_description "the persons hair is" RAE(hair)
it will become "the persons hair is brown"
就像你说的,你可以把它包装在一个类中:
public class RandomStringGenerator
{
private string[] data; //Data holder
private Random rng = new Random(); //Class level so it seeds once
public RandomStringGenerator(string[] startData)
{
data = startData;
}
public string GetRandomElement()
{
return data[rng.Next(0, data.Length)];
}
}
将初始化的数组传递给它,然后在每次需要新元素时调用GetNextElement:
RandomArray hairRandomizer = new RandomArray (new string[] { "side swept bangs", "straight bangs", "choppy bangs", "wispy bangs", "parted straight bangs", "parted choppy bangs", "blunt single length bangs", "bangs shorter on one side than the other", "pixi cut bangs"});
string myHair = hairRandomizer.GetNextElement();
正如AlexeiLevenkov所指出的,同时创建很多这些是一个糟糕的选择。如果您这样做,您需要在更高的级别创建Random
对象并将其传入:
public class RandomStringGenerator
{
private string[] data; //Data holder
private Random rng; //Not instantiated since we pass it in
public RandomStringGenerator(string[] startData, Random rngToUse)
{
data = startData;
rng = rngToUse;
}
... //Same as before
}