通过字符串(对象)索引的二维表

发布于 2024-10-02 07:27:56 字数 577 浏览 6 评论 0原文

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

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}});

那么如何以最好的方式创建由字符串索引的二维数组(也许创建可以处理这个问题的新类)?

I've got a problem i need to create 2 dimensional table which will be indexed by string for example:

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

or jagged:

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

How to declare Collection or array that can handle this?
I found solution but im not sure it is the best.

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

But when i wanna create a new value i need to initialize new dictionary, so why i thing that solution is not the rightest:

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

So how in the best way create 2 dimensional array indexed by string (mayby create new class that can handle this)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吻安 2024-10-09 07:27:56

我曾经写过一个多键字典,让我们看看这里是。

您可以通过两个键获取或设置元素,例如字典[“key1”,“key2”]。

编辑:
但我想使用 .NET 4 中的 Tuple 类型,您可以使用 Tuple 作为键,而不是使用嵌套字典。

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

I wrote a MultiKey-dictionary once, lets see, here it is.

You can get or set an element by two keys like this dictionary["key1", "key2"].

Edit:
But I suppose with the Tuple type in .NET 4 you can use a Tuple as key instead of using nested dictionaries.

public class Dictionary<TKey1, TKey2, TValue> : Dictionary<Tuple<TKey1, TKey2>, TValue>
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文