如何在C#中创建具有动态名称的变量?
我想在for循环中创建一个var,例如如何在C#中创建具有动态名称的变量?,c#,string,dynamic-variables,C#,String,Dynamic Variables,我想在for循环中创建一个var,例如 for(int i; i<=10;i++) { string s+i = "abc"; } for(int i;i当您试图重新定义变量“i”时,您的第一个示例在任何语言中都不起作用。它是循环控件中的一个int,但在循环体中是一个string 根据您更新的问题,最简单的解决方案是使用数组(C#): string[]s=新字符串[10]; for(int i;i
for(int i; i<=10;i++)
{
string s+i = "abc";
}
for(int i;i当您试图重新定义变量“i”时,您的第一个示例在任何语言中都不起作用。它是循环控件中的一个int
,但在循环体中是一个string
根据您更新的问题,最简单的解决方案是使用数组(C#):
string[]s=新字符串[10];
for(int i;i<10;i++)
{
s[i]=“abc”;
}
当您试图重新定义变量“i”时,您的第一个示例在任何语言中都不起作用。它是循环控件中的int
,但在循环体中是string
根据您更新的问题,最简单的解决方案是使用数组(C#):
string[]s=新字符串[10];
for(int i;i<10;i++)
{
s[i]=“abc”;
}
使用某种eval
(如果该语言可用)。使用某种eval
(如果该语言可用)。这取决于该语言
通常,当人们想要这样做时,正确的做法是使用一种数据结构,例如存储键名和相关值的哈希表/字典/映射。这取决于语言
通常,当人们想要这样做时,正确的做法是使用一种数据结构,例如存储键名和相关值的哈希表/字典/映射。显然,这高度依赖于语言。在大多数语言中,这是完全不可能的。在Javascript中,在浏览器中,以下功能起作用:
for (var i = 0; i<10 ; i++) { window["sq"+i] = i * i; }
for(var i=0;i显然,这在很大程度上取决于语言。在大多数语言中,这是完全不可能的。在Javascript中,在浏览器中,以下功能起作用:
for (var i = 0; i<10 ; i++) { window["sq"+i] = i * i; }
for(var i=0;i您可能想使用数组。我不知道它们在c#中是如何工作的(我是Java人),但类似这样的东西应该可以做到:
string[] s = new string[10];
for (int i; i< 10; i++)
{
s[i] = "abc";
}
string[]s=新字符串[10];
for(int i;i<10;i++)
{
s[i]=“abc”;
}
阅读
您可能想使用数组。我不知道它们在c#中是如何工作的(我是Java人),但类似这样的东西应该可以做到:
string[] s = new string[10];
for (int i; i< 10; i++)
{
s[i] = "abc";
}
string[]s=新字符串[10];
for(int i;i<10;i++)
{
s[i]=“abc”;
}
阅读
你可以用字典。
键-对象的动态名称
价值对象
Dictionary<String, Object> dictionary = new Dictionary<String, Object>();
for (int i = 0; i <= 10; i++)
{
//create name
string name = String.Format("s{0}", i);
//check name
if (dictionary.ContainsKey(name))
{
dictionary[name] = i.ToString();
}
else
{
dictionary.Add(name, i.ToString());
}
}
//Simple test
foreach (KeyValuePair<String, Object> kvp in dictionary)
{
Console.WriteLine(String.Format("Key: {0} - Value: {1}", kvp.Key, kvp.Value));
}
你可以用字典。
键-对象的动态名称
价值对象
Dictionary<String, Object> dictionary = new Dictionary<String, Object>();
for (int i = 0; i <= 10; i++)
{
//create name
string name = String.Format("s{0}", i);
//check name
if (dictionary.ContainsKey(name))
{
dictionary[name] = i.ToString();
}
else
{
dictionary.Add(name, i.ToString());
}
}
//Simple test
foreach (KeyValuePair<String, Object> kvp in dictionary)
{
Console.WriteLine(String.Format("Key: {0} - Value: {1}", kvp.Key, kvp.Value));
}
您使用的是哪种语言?请指定上下文……以及您的问题是什么?@cagin:+1这在javascript中是可能的,我从未在c#中见过。我想这只在脚本语言中可能,而不是在编译语言中。如果您的问题更具体,您可能会避免反对票。可能与lang的重复您使用的语言是什么?请指定上下文…以及您的问题是什么?@cagin:+1这在javascript中是可能的,我从来没有在c#中见过。我想这只在脚本语言中可能,而不是在编译语言中。如果您的问题更具体,您可能会避免反对票。可能的+1副本仅用于figuri搞清楚行动到底在说什么。+1只是为了搞清楚行动到底在说什么。