Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中创建具有动态名称的变量?_C#_String_Dynamic Variables - Fatal编程技术网

如何在C#中创建具有动态名称的变量?

如何在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循环中创建一个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<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只是为了搞清楚行动到底在说什么。