2017-04-21 71 views
1

我有一个数组的名单,我想用这些名字将它们分配给新的名单像波纹管:如何使用数组的项目,如名字等变量C#

var list = new string[]{"bot1","bot2","bot3"}; 
    List<string> list[0] = new List<string>(); 

但我得到错误:在这个范围内已经定义了一个名为'list'的局部变量或函数。

是否有解决方法!!? 您的意见将不胜感激。

+0

您不能将多个变量定义为相同的名称。只需将第二个变量改为其他名称,如'name'。 –

+1

[创建动态变量名称](http://stackoverflow.com/questions/20857773/create-dynamic-variable-name)可能的重复 – Usman

+0

@JohnOdom你的意思,而不是列表[0],我应该使用名称(或随你) !!? –

回答

3

我想你可以存储你的机器人在词典:

var bots = new Dictionary<string,List<string>>(); 
bots[name] = new List<string>(); 
bots[name].Add("some str"); 
+0

谢谢你,这个窍门 –

+0

@Mehrdad_gh,不用客气,你也可能想改变某种类型的价值结构 – gabba

+0

是的,我正在使用一个类的列表,但无法找出你的解决方案,它有帮助很大程度上,再次感谢 –

0

如果你只需要一个整数的关键不是你也可以使用此解决方案。

List<List<string>> list = new List<List<string>>(); 

list.Add(new List<string>{ {"A"} }); 

list[0][0] = ".."; 
+1

请考虑添加更多详细信息,以解释其工作原理和原因。 –

+0

@Wolfram Wisser,当我们需要通过索引访问机器人时,您的解决方案很好,但是当我们刚刚命名时,我们必须扫描整个列表才能访问。 O(n)复杂性。字典给O(1)访问的复杂性。 – gabba

相关问题