2010-11-12 54 views
1

我有一個問題,我需要創建二維表將由字符串例如進行索引:2維表與由字符串(對象)的索引

table["London","Cambridge"] = 120; 

或鋸齒狀:

table["London"]["Cambridge"] = 120; 

如何聲明可以處理這個的集合或數組? 我找到了解決方案,但我不知道它是最好的。

Dictionary<string, Dictionary<string, int>> test = new Dictionary<string, Dictionary<string, int>>(); 

但是,當我想創造一個新的價值,我需要初始化新的字典,爲什麼我的事情該解決方案是不是最右端:

table.Add("London", new Dictionary<string, int> {{"Cambridge",120}}); 

因此,如何以最好的方式創建二維數組索引的字符串(mayby創建新的類,可以處理這個)?

+0

DataTable會在這裏適合嗎?正在使用的字符串數量是否有變化? – Paddy 2010-11-12 16:35:35

回答

2

我寫了一個MultiKey字典,讓我們看看,here它是。

您可以通過兩個鍵來獲取或設置元素,例如dictionary["key1", "key2"]

編輯:
但我想,在.NET 4中,你可以使用一個元組的關鍵,而不是使用嵌套的字典元組的類型。

public class Dictionary<TKey1, TKey2, TValue> : Dictionary<Tuple<TKey1, TKey2>, TValue> 
... 
+0

這不是一個很好的實現,但它可能會爲他的目的。 – Gabe 2010-11-12 16:17:30