如何将值设置为:KeyValuePair <keyvaluepair <string,string>,int&gt;

时间:2016-04-23 18:29:42

标签: c# keyvaluepair

C# 我使用KeyValuePair作为主KeyValuePair中的键。 这是我的问题:

如果我有&#34; KeyValuePair&#34;,声明如下:

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

如果我有以下内容,我该如何声明:

KeyValuePair<KeyValuePair<String,String>,int>

我在语法中迷失了方向。请帮帮我!

谢谢!

1 个答案:

答案 0 :(得分:4)

你几乎拥有它,但将它分成两个初始化是最容易的。

首先,初始化KeyValuePair<string, string>,然后将其与int一起用于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);