【问题标题】:How to access value in a Dictionary that has a Tuple as the Key in c#?c# - 如何访问以元组为键的字典中的值?
【发布时间】:2018-01-14 09:58:41
【问题描述】:

我创建了一个字典,其中元组作为键,枚举器作为值。

mKeyValue.Add(Tuple.Create(lineCount,columnID),(E)style);

mKeyValue 是字典。

static Dictionary<Tuple<int,int>,E> mKeyValue = new Dictionary<Tuple<int,int>,E>();

现在如何访问这个字典中的元素? 我用过这样的东西,

mKeyValue[Tuple<lineCount,columnID>];

但它不起作用。

【问题讨论】:

标签: c# dictionary tuples


【解决方案1】:

如果您已经定义了 Tuple&lt;int,int&gt;,则将其用作键,例如 mKeyValue[t];

Tuple<int,int> t = Tuple.Create(1, 1);
mKeyValue.Add(Tuple.Create(1, 1), (E)21);
var data = mKeyValue[t];

【讨论】:

    【解决方案2】:

    这与使用任何其他类型的密钥没有什么不同。您需要将类型的实例而不是类型(声明)本身传递给索引器。

    当你真正想要myKeyValue[5] 时,你不会说myKeyValue[int],而是Dictionary&lt;int, ...&gt;。在这种情况下,只是键看起来有点“复杂”。

    例子:

    // Lookup entry for LineCount = 1, ColumnID = 4711
    var value = myKeyValue[Tuple.Create(1, 4711)];
    

    基本上,就像您在使用 Dictionary&lt;&gt;.Add(...) 添加条目时所做的那样。

    【讨论】:

      猜你喜欢
      • 2020-05-12
      • 1970-01-01
      • 2015-08-07
      • 2022-01-22
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      相关资源
      最近更新 更多