2016-04-23 100 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Хорошегодня! –

相关问题