C# 我使用KeyValuePair作为主KeyValuePair中的键。 这是我的问题:
如果我有" KeyValuePair",声明如下:
KeyValuePair<String,String> varName = new KeyValuePair<String,String>("String 1","String 2");
如果我有以下内容,我该如何声明:
KeyValuePair<KeyValuePair<String,String>,int>
我在语法中迷失了方向。请帮帮我!
谢谢!
答案 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);