2017-09-04 14 views
1

私は辞書の使い方を広げようとしており、私のペアに複数の値を設定したいと考えています。C#タプル辞書

辞書に項目を追加する際に問題はありませんでした。 私はオプションとしてTupleを使用しようとしましたが、特定の値を抽出する方法を理解できないようです。

この作品:

Dictionary<string, string> voc4 = new Dictionary<string, string>(); 
voc1.Add(key1, value); 

if (voc1.TryGetValue(result.Text.ToLower(), out string cmd)) 
{ 
    ToSend(cmd); 
} 

私はタプルで新しい辞書を構築しようとした:

Dictionary<string, Tuple<string ,string>> voc5 = new Dictionary<string,Tuple<string ,string>>(); 
voc5.Add(key1, new Tuple<string, string>(value,response)); 

if (voc5.TryGetValue(result.Text.ToLower(), out string cmd)) 
{//this is what I cant get working. I want to get the first value of thedictionary for 1 purpose and the other for a different purpose 
} 

は、どのように私はキーに基づいて特定の値を取得し、異なる機能のためにそれらを使用することができますか? 例は次のようになります。

if (voc5.TryGetValue(result.Text.ToLower(), out string cmd))// the first value 
{ 
    ToSend(value 1 from tuple).ToString(); 

    ToDisplay(value 2 from tuple).ToString();  
} 

すべてのヘルプは

+0

7つの質問をし、10の回答を得ましたが、それらの回答はすべて受け入れられません。回答を受け入れると、その質問は回答済み(「解決済み」)とマークされます。投票に加えて、他のユーザーが良い回答/投稿を見つけるのにも役立ちます。答えを投稿する立場にいなくても、他人を助けることができます。 [ツアー]は約2分で画像を説明します – Plutonix

+0

私はお詫び申し上げます。私は解決され、役に立つとマークするのを知らなかった。 –

+0

'out string cmd'の代わりに(それはコンパイルされますか?)' out Tuple tuple'は 'voc5'ディクショナリの値型であるためです。 – Dialecticus

答えて

0

あなただけの辞書のうち、全体のTuple<string, string>インスタンスを取得することができます素晴らしいことです。値の1つだけを使用したい場合でも、タプル全体をフェッチする必要があります。

タプルを取得した後、ItemNを使用して要素にアクセスします。

if (voc5.TryGetValue(result.Text.ToLower(), out Tuple<string, string> cmd)) 
{ 
    ToSend(cmd.Item1).ToString(); 

    ToDisplay(cmd.Item2).ToString(); 
} 
+0

それは私が行方不明だった部分だった。ありがとうございました –