我有一个for循环,遍历一个UI.text元素数组(共6个),并通过将这个数字转换为字符串来随机分配一个数字。我试图 - 在转换之前或之后 - 收集这些6个数字的总价值。即6 + 1 + 2 + 3 + 4 + 1 = 17.下面的代码是错误的,因为它在控制台中产生一个'0' - 我注意到它在右侧给出一个总对象值,总是等于正确的总和,但这似乎没有用。 有没有更简单的方法呢?
for(int i = 0; i < blueHex1CardNumbers.Length; i++)
{
int j = Random.Range(1, 6);
string myString = j.ToString();
blueHex1CardNumbers[i].text = myString;
int numbers = System.Int32.Parse(blueHex1CardNumbers[i].text);
int[] total = new int[numbers]; //This is where i think the problem lies
for(int l = 0; l < total.Length; l++)
{
int final = total.Sum ();
Debug.Log(final);
}
}
答案 0 :(得分:1)
简单地说:
// Add this up here
int totals = 0;
for(int i = 0; i < blueHex1CardNumbers.Length; i++)
{
int j = Random.Range(1, 6);
// increment it as you go
totals += j;
string myString = j.ToString();
blueHex1CardNumbers[i] = myString;
}
// use your totals here
答案 1 :(得分:0)
var random = new Random();
var ints = Enumerable.Repeat(0, blueHex1CardNumbers.Length)
.Select(_ => random.Next(1, 6))
.ToArray(); // six random ints
var strings = ints.Select(n => n.ToString());
var total = ints.Sum();
var i = 0;
foreach (var s in strings)
blueHex1CardNumbers[i++].Text = s;