创建将使用listValue命名的变量

时间:2016-10-08 18:18:42

标签: c#

我在创建变量时会遇到一些问题,该变量将由列表值命名。

以下是我想要的例子。

for (int i = 0; i < list.Count; i++)
{
  //here I want to create variable
  //which will be named with list[i]
}

所以如果list有2个元素,例如

list[0] = "testName"
list[1] = "andAnotherOne"

我想创建2个变量, 其中一个名为testName,第二个名为andAnotherOne

你能帮我完成吗?

4 个答案:

答案 0 :(得分:1)

只需创建一个List<string> names = new List<string>();

   for (int i = 0; i < 5; i++)
   {
      names.Add("sample" + i);
   }

修改

如果您想引用名称,请使用下面的字典,

Dictionary<string, string> myvalues = new Dictionary<string, string>();

答案 1 :(得分:1)

我相信你需要TaW所说的Dictionary。这允许您具有与索引相同的值。

Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("foo","foo"); //index,value of index
if(dictionary.ContainsKey["foo"])
{ 
    string value = dictionary["foo"];
    Console.Write(value);
}

我希望我理解你的问题。

答案 2 :(得分:1)

您可以使用dynamicExpandoObject

var variables = new List<string> { "variableOne", "variableTwo" };

dynamic scope = new ExpandoObject();

var dictionary = (IDictionary<string, object>)scope;

foreach (var variable in variables)
    dictionary.Add(variable, "initial variable value");

Console.WriteLine(scope.variableOne);
Console.WriteLine(scope.variableTwo);

答案 3 :(得分:0)

在C#中,变量都是静态声明的。我想你不能这样做。也许你可以尝试反思,但我认为它不能让你做你想做的事。

我发现你可能感兴趣的一些事情:

string to variable name

Convert string to variable name