【问题标题】:2 dimensional table with indexing by string(object)按字符串(对象)索引的二维表
【发布时间】:2010-11-12 16:05:55
【问题描述】:

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

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

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

【问题讨论】:

  • 数据表在这里合适吗?正在使用的字符串数量是否会发生变化?

标签: c# string collections indexed dimensional


【解决方案1】:

我曾经写过一个 MultiKey-dictionary,让我们看看,here 它是。

你可以像dictionary["key1", "key2"]这样的两个键来获取或设置一个元素。

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

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

【讨论】:

  • 这不是一个很好的实现,但它可能会为他的目的工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 2017-07-22
相关资源
最近更新 更多