我是C#的新手。有什么方法可以将roll1
变量值放入rolls
arrayList中吗?我是否需要将此部分放在与主要部分分开的方法中?
Random diceRoll1 = new Random();
int throw1 = diceRoll1.Next(1, 18);
Random diceRoll2 = new Random();
int throw2 = diceRoll2.Next(1, 12);
Random diceRoll3 = new Random();
int throw3 = diceRoll3.Next(1, 6);
ArrayList rolls = new ArrayList();
int roll1 = Console.WriteLine(throw1 + throw2 + throw3);
Console.ReadLine();
答案 0 :(得分:1)
首先要注意的是,每次需要随机数时,您都不需要创建新的Random
。 Random
是从当前时间开始播种的,因此代码很可能运行得足够快,以至于您获得了三个相同的随机数。至于将值添加到列表中,有几个不同的选项。如果您始终要将包含三个分组值的项目放入列表中,则可以使用Tuple<int, int, int>
。这是一个例子:
Random rnd = new Random();
int throw1 = rnd.Next(1, 18);
int throw2 = rnd.Next(1, 12);
int throw3 = rnd.Next(1, 6);
List<Tuple<int, int, int>> rolls = new List<Tuple<int, int, int>>();
rolls.Add(new Tuple<int, int, int>(throw1, throw2, throw3));
或者,您可以使用嵌套的整数列表,将最后两行替换为:
List<List<int>> rolls = new List<List<int>>();
rolls.Add(new List<int> { throw1, throw2, throw3 });
最后,您还可以使用数组:
List<int[]> rolls = new List<int[]>();
rolls.Add(new int[] { throw1, throw2, throw3 });
另一种选择是制作一个自定义类来保存你的骰子卷值(让我们称之为MultiDiceRoll
)并列出一个(List<MultiDiceRoll>
)。
修改强>
如果您想使用ArrayList
(我不会建议,由于我将要进入的原因),您可以执行以下操作:
ArrayList rolls = new ArrayList();
rolls.Add(new int[] { throw1, throw2, throw3 }); // Or whatever other permutation you want
我建议不要这样做是因为ArrayList
内的项目是object
。也就是说,ArrayList
并不像List<T>
那样使用泛型。这意味着每次访问列表中的某个项目并希望以某种方式使用它时,都必须将其强制转换为所需的类型(例如(int[])rolls[0]
)。如果更改列表项的类型,则需要清理和更改许多类型引用。
答案 1 :(得分:-1)
您可以初始化int类型列表并将每个元素添加到该列表中。添加所有元素后,您可以遍历该列表并打印它。 https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx