C# 按字符串索引的二维表(对象)

C# 按字符串索引的二维表(对象),c#,string,collections,indexed,dimensional,C#,String,Collections,Indexed,Dimensional,我有一个问题,我需要创建二维表,该表将按字符串索引,例如: table["London","Cambridge"] = 120; 或锯齿状: table["London"]["Cambridge"] = 120; 如何声明可以处理此问题的集合或数组? 我找到了解决办法,但我不确定这是最好的 Dictionary<string, Dictionary<string, int>> test = new Dictionary<string, Dictionary<

我有一个问题,我需要创建二维表,该表将按字符串索引,例如:

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}});
table.Add(“伦敦”,新词典{{“剑桥”,120});

那么,如何以最佳方式创建按字符串索引的二维数组(可能通过创建可以处理此问题的新类)?

我曾经编写过一个多键词典,让我们看看,它是

您可以通过以下两个键获取或设置元素
字典[“key1”、“key2”]

编辑:
但我认为,对于.NET4中的元组类型,您可以使用元组作为键,而不是使用嵌套字典

public class Dictionary<TKey1, TKey2, TValue> : Dictionary<Tuple<TKey1, TKey2>, TValue>
...
公共类字典:字典
...

这不是一个很好的实现,但它可能适合他的目的。DataTable在这里合适吗?正在使用的字符串的数量可能会发生变化吗?