将字符串转换为整数并通过添加获得总值

时间:2015-02-01 00:09:22

标签: c# for-loop unity3d

我有一个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);
        }
    }

2 个答案:

答案 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;