首页 > 解决方案 > 使用“for loop”中的 i 作为变量的一部分

问题描述

我正在尝试将“i”值用作已声明变量的一部分,然后使用该变量的 int 值。

我找到了如何将输出格式化为字符串,但这对我没有帮助,因为我需要变量“place(i)”的 int 值。

我制作了我的代码的简化版本:

    int place0 = 3;
    int place1 = 0;
    int place2 = -3;

    for (int i = 0; i < 10; i++)
    {
        if (i+1 == 3)
            {
            int yPos = place[i];        //?
            int yPos = place + i;       //?
            int yPos = string.Format("place{0}", i);    //?

            gameObject.transform.position = new Vector3(xPos, yPos, 1);
            }
    }

在这种情况下,变量“yPos”应该设置为“place2”的值,即-3。但我正在努力传递变量值而不是变量名。

我知道必须有一个简单的解决方案,但这超出了我的想象。我也很难定义这个问题,因此很难找到并回答。

标签: c#

解决方案


你找到了正确的语法来使用这一行的数据结构:

int yPos = place[i];

这还不是正确的数据结构。您正在寻找的是一个数组。像这样的东西:

int[] place = new int[] { 3, 0, -3 };

向前迈出的另一步可能是使用 a List<>,它比标准数组更宽容和更灵活:

List<int> place = new List<int> { 3, 0, -3 };

在任何一种情况下,我都建议重命名placeplaces,只是为了复数的语义。

总的来说,无论我们谈论的是 a List<>、 aDictionary<>还是任何其他类型的集合,一般来说,当您发现自己想要对一系列变量进行编号时,您可能正在寻找的就是一个集合。


推荐阅读