我在创建变量时会遇到一些问题,该变量将由列表值命名。
以下是我想要的例子。
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
你能帮我完成吗?
答案 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)
您可以使用dynamic
和ExpandoObject
:
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#中,变量都是静态声明的。我想你不能这样做。也许你可以尝试反思,但我认为它不能让你做你想做的事。
我发现你可能感兴趣的一些事情: