2016-04-23 129 views
2

C# 我在我的主KeyValuePair中使用KeyValuePair作爲鍵。 這裏是我的問題:如何將值設置爲:KeyValuePair <KeyValuePair <String,String>,int>

如果我有「KeyValuePair」,該宣言將是如下:

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

如何,我宣佈,如果我有以下幾點:

KeyValuePair<KeyValuePair<String,String>,int> 

我在這裏的語法中很迷茫。請幫助我!

謝謝!

+0

多德的語言..什麼碼你已經試過..如果你可以告訴會更好,我認爲... – Manish

+0

對不起,認爲這是很清楚。我的不好,這是C# –

回答

4

你幾乎擁有它,但最簡單的方法就是將它分成兩個初始化。

首先,初始化KeyValuePair<string, string>,然後使用與int一起initalise的KeyValuePair<KeyValuePair<string, string>, 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你可以幫助解決困難的問題,如何將這兩行代碼混合成一個? –

+0

並且沒有任何其他方法:'新的KeyValuePair ,int>(新的KeyValuePair <字符串,字符串>(「字符串1」,「字符串2」),42)'。 – IllidanS4

+0

@КристиянКостадинов當然,看看我最近的編輯。 :) \tХорошегодня! –

相關問題