我可以使用字符串数组命名变量吗? (C#)

问题描述 投票:0回答:1

我想用一个循环来声明 100 个具有线性值的变量,但以特定城市命名。我尝试将这 100 个城市名称放入一个字符串数组中,并尝试使用 while 循环和 foreach 循环声明变量。

(我使用 int 保持简单只是为了验证我什至不能让它与它们一起工作。我真正想做的是从我的其他类声明变量并将 2D 算法值传递给构造函数都在同一个循环中,但我还没有涉及到那部分,如果需要,我总是可以在一个单独的循环中完成它。)

尝试 1:

int i = 0;
while (i < 100)
{
    int locations[i] = i;
    i++;
}

尝试 2:

int i = 0;
while (i < 100)
{
    int (locations[i]) = i;
    i++;
}

尝试3:

foreach (string aLocation in locations)
{
    int (aLocation) = 1;
}

甚至可以这样命名变量吗?我在浪费时间吗?看到另外一个帖子貌似是另类语言,回复都是“猜”,做不出来

(是的,我知道 foreach 尝试不会分配线性值,但我认为如果该代码有效,那么我至少有一些事情可以继续(它没有工作)。)

c# arrays loops variables naming
1个回答
0
投票

在包括 C# 在内的大多数编程语言中,不能使用字符串动态生成或分配变量名。变量名称需要在编译时已知和定义。因此,不能使用字符串数组直接命名变量。

但是,您可以使用数组或字典等数据结构将值与相应的城市名称相关联,从而实现类似的功能。这是您如何完成此操作的示例:

string[] cityNames = new string[100];
int[] cityValues = new int[100];

for (int i = 0; i < 100; i++)
{
    cityNames[i] = "City" + i;
    cityValues[i] = i;
}

在这个例子中,cityNames数组保存了城市的名称,而cityValues数组保存了相应的值。您可以使用数组索引访问这些值。例如,cityValues[0] 将为您提供第一个城市的值,而 cityNames[0] 将为您提供第一个城市的名称。

如果你想以更灵活的方式将值与城市名称相关联,你可以使用字典而不是单独的数组。这是一个例子:

Dictionary<string, int> cityData = new Dictionary<string, int>();

for (int i = 0; i < 100; i++)
{
    string cityName = "City" + i;
    int cityValue = i;
    cityData.Add(cityName, cityValue);
}

在这种情况下,cityData 字典允许您将城市名称(键)映射到它们对应的值。您可以使用城市名称访问值,例如 cityData["City0"].

通过使用数组或字典,您可以结构化地存储和访问与城市名称关联的值,而无需动态生成变量名称。

© www.soinside.com 2019 - 2024. All rights reserved.