在循环内创建唯一名称

时间:2014-03-19 18:29:40

标签: c# loops

for (var i = 0; i < 3; i++)
{
    List<Object> listName + i = new List<Object>();
    Object objectName + i = new Object();
}

我有这样的想法,但我如何实际做到这一点呢?

4 个答案:

答案 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?