c# - 使用“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。但我正在努力传递变量值而不是变量名。
我知道必须有一个简单的解决方案,但这超出了我的想象。我也很难定义这个问题,因此很难找到并回答。
解决方案
你找到了正确的语法来使用这一行的数据结构:
int yPos = place[i];
这还不是正确的数据结构。您正在寻找的是一个数组。像这样的东西:
int[] place = new int[] { 3, 0, -3 };
向前迈出的另一步可能是使用 a List<>
,它比标准数组更宽容和更灵活:
List<int> place = new List<int> { 3, 0, -3 };
在任何一种情况下,我都建议重命名place
为places
,只是为了复数的语义。
总的来说,无论我们谈论的是 a List<>
、 aDictionary<>
还是任何其他类型的集合,一般来说,当您发现自己想要对一系列变量进行编号时,您可能正在寻找的就是一个集合。
推荐阅读
- android - FullScreenIntent 通知不会始终关闭键盘保护
- reactjs - 尝试导入错误:“Switch”未从“react-router”导出
- algorithm - 确定这个循环问题的大 O
- github - Google Colab:如何从文件夹中导入 python 文件
- python - 获取页面或链接的子页面或链接
- docker - 尽管传递了 -y 标志,但 Docker 仍停留在接口中
- python - 将 python dict 转换为 protobuf
- java - 在java中使用lambda表达式进行嵌套for循环
- python - Destiny2 API - POST Transfer Item 总是返回 DestinyItemNotFound
- r - 加权平均误差。为什么找不到专栏?