如何在C#中使用元组作为键的字典中访问值?

时间:2017-08-07 07:02:59

标签: c# dictionary tuples

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

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>];

但它不起作用。

2 个答案:

答案 0 :(得分:2)

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

当您真正想要myKeyValue[int]时,您不会对Dictionary<int, ...>myKeyValue[5]。在这种情况下,关键看起来更“复杂”。

示例:

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

基本上,就像添加Dictionary<>.Add(...)的条目一样。

答案 1 :(得分:1)

如果您已经定义了Tuple<int,int>,那么请将其用作mKeyValue[t];

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