【问题标题】:How to declare and initialize multiple variables (with different names) within a for loop without using arrays?如何在不使用数组的情况下在 for 循环中声明和初始化多个变量(具有不同名称)?
【发布时间】:2019-06-13 23:28:44
【问题描述】:

我正在尝试执行数组应该执行的工作,但实际上并未使用数组。我想知道这是否可能,如果可能,如何实现?

我要初始化不同的变量,例如:

int value1 = 0;
int value2 = 0;
int value3 = 0;
int valueN = 0;

我想从用户那里接收一个值来确定 for 循环将持续到什么时间。

示例:用户 --> 4

然后我可以声明 4 个变量并使用它们。

for (i = 1; i <= 4; i++) {
    Console.Write("Insert a number: ");
    int value(i) = int.Parse(Console.ReadLine());
}

我希望有 4 个变量的名称相同,但唯一的区别是每个变量的名称末尾都添加了不同的数字。

// value1 = 0;
// value2 = 0;
// value3 = 0;
// valueN = 0;

【问题讨论】:

  • 你这样做的目的是什么?
  • 为什么不想使用数组?
  • 使用字典可以实现接近此的行为:stackoverflow.com/a/16251774/302248
  • 如果您在循环内声明它们,那么您将无法在循环外使用它们。这听起来像是一个非常人为的要求,在现实中没有根据?
  • 对于所有问我为什么不使用数组的人:这是因为我的一个朋友必须解决一个问题,他需要接受大学职业和他们拥有的学生数量。他的老师甚至没有提到数组或除变量之外的任何其他数据结构。所以这就是为什么我想通过在循环中声明多个变量并在循环中自动显示它的值来解决这个问题。

标签: c# console-application


【解决方案1】:

您不能在 C# 中创建动态命名的变量(我和那些想知道为什么要这样做的人在一起)。如果您不想使用数组,请考虑使用字典——在某些情况下它会比数组执行得更好。

Dictionary<string, int> values = new Dictionary<string, int>();
for (int i = 1; i <= 4; i++)
{
    values.Add("value" + i, 0);
}

value["value1"]; //retrieve from dictionary

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    相关资源
    最近更新 更多