2016-04-23 15 views
2

C# 私はKeyValuePairをメインのKeyValuePairのキーとして使用しています。 はここに私の問題です:私は "KeyValuePair" を持っている場合値を設定する方法:KeyValuePair <KeyValuePair <String、String>、int>

、宣言は以下のようになります:

KeyValuePair<String,String> varName = new KeyValuePair<String,String>("String 1","String 2"); 

を私は以下の持っている場合、私はそれを宣言するにはどうすればよい:

KeyValuePair<KeyValuePair<String,String>,int> 

Iここで構文が失われてしまった。私を助けてください!

ありがとうございました!

+0

デュードをあなたが試したこと..もしあなたが私が考えているより良いと言うことができる... – Manish

+0

申し訳ありませんが、それは十分だったと思った。私の悪い、それはC# –

答えて

4

これはほとんどありますが、2つの初期化に分割するのが最も簡単です。まず

KeyValuePair<string, string>を初期化してからKeyValuePair<KeyValuePair<string, string>, int>をinitaliseするintと一緒にいることを使用します。

var pair = new KeyValuePair<string, string>("string 1", "string 2"); 
var varName = new KeyValuePair<KeyValuePair<string, string>, int>(pair, 10); 

あなたがそうのようなヘルパーメソッドを記述する場合は、かなりこれを簡素化することができます。

public static KeyValuePair<T1, T2> MakeKeyValuePair<T1, T2>(T1 key, T2 value) 
{ 
    return new KeyValuePair<T1, T2>(key, value); 
} 

これを使用して、代わりに次の操作を行うことができます:

var pair = MakeKeyValuePair("string 1", "string 2"); 
var varName = MakeKeyValuePair(pair, 10); 

これははるかに簡単で、型を明示的に指定する必要はありません。

それとも、(私は個人的にこれを好むしていない)ことを好む場合:

var varName = MakeKeyValuePair(MakeKeyValuePair("string 1", "string 2"), 10); 

しかし、あなたが本当にそれを苦労行いたい場合:言語..どのようなコード

var varName = new KeyValuePair<KeyValuePair<string, string>, int>(
    new KeyValuePair<string, string>("string 1", "string 2"), 
    10); 
+0

ええ、私はそれだけど、なぜ私はそれが難しい方法を行うことができます簡単です。 :Dあなたはハードなものを助けてくれますか?これらの2行のコードをどのように1つに混ぜるのですか? –

+0

新しいメソッドを追加することなく、新しいKeyValuePair KeyValuePair 、int>(新しいKeyValuePair ( "String 1"、 "String 2")、42)。 – IllidanS4

+0

@КристиянКостадинов確かに、私の最新の編集を見てください。 :) \tХорошегодня! –