将字符串转换为整数并通过加法获得总值
turning strings to ints and getting the total value by addition
我有一个 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);
}
}
只需执行:
// 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
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;
我有一个 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);
}
}
只需执行:
// 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
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;