2017-04-21 70 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

相關問題