for (var i = 0; i < 3; i++)
{
List<Object> listName + i = new List<Object>();
Object objectName + i = new Object();
}
我有这样的想法,但我如何实际做到这一点呢?
答案 0 :(得分:3)
你不能这样做。相反你可以使用字典:
for (var i = 0; i < 3; i++)
{
var dictionary = new Dictionary<string, Object>();
dictionary.Add("myObject" + i, new Object());
}
然后,您可以使用dictionary["myObject1"]
访问您的对象,如果这是您想要的...
答案 1 :(得分:1)
将对象添加到C#中的列表时,不需要唯一的变量名。
List<int> listName = new List<int>();
for (var i = 0; i < 3; i++)
{
int objectName = i;
listName.Add(i);
}
或者,如果您正在寻找KeyValuePair,您可以使用字典。
var dictionary = new Dictionary<string, Object>();
for (var i = 0; i < 3; i++)
{
dictionary.Add("myObject" + i, new Object());
}
然后,您可以使用以下方式访问每个值:
dictionary["myObject0"]
dictionary["myObject1"]
dictionary["myObject2"]
答案 2 :(得分:1)
var dictionary = new Dictionary<string, Object>();
for (var i = 0; i < 3; i++)
{
dictionary.Add("Object" + i, new Object());
}
答案 3 :(得分:0)
我认为你不能动态命名那样的对象。您可以尝试预先创建字典并在循环中分配值。看到这里,这与您正在寻找的类似: C#, dynamic object names?