2017-08-07 17 views
1

タプルをキーに、列挙子を値として辞書を作成しました。タプルをキーとする辞書の値にc#でアクセスする方法は?

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

が、それは動作しません。

答えて

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]; 
などのキーとしてそれを使用し、定義されている場合
1

他のタイプのキーでの使用と変わりはありません。型(宣言)自体ではなく、型のインスタンスをインデクサに渡す必要があります。

実際にmyKeyValue[5]がほしいと思ったら、Dictionary<int, ...>の場合、myKeyValue[int]とは言わないでしょう。この場合、ちょうどキーが少し複雑に見えます。

例:基本的に

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

Dictionary<>.Add(...)のエントリを追加したときと同じように。

関連する問題