我知道可以将KeyValuePair的List转换为Dictionary,但是有一种快速的方法(除了手动循环)以执行相反的操作吗?
这将是手动方式,
foreach (KeyValuePair<double,double> p in dict)
{
list.Add(new KeyValuePair<double,double>(p.Key,p.Value));
}
Run Code Online (Sandbox Code Playgroud)
不是那么糟糕,但我只是好奇.
我正在使用Json.Net进行序列化.我有一个带有词典的类:
public class Test
{
public string X { get; set; }
public Dictionary<string, string> Y { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我可以以某种方式序列化此对象以获取以下JSON
{
"X" : "value",
"key1": "value1",
"key2": "value2"
}
Run Code Online (Sandbox Code Playgroud)
其中"key1","key2"是字典中的键?
我需要得到:
public class Package
{
public Package()
{
name = "";
type = new List<Dictionary<string, string>>();
}
public string name { get; set; }
public List<Dictionary<string, string>> type { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
成:
{
"name":"package_name",
"type":
{
"http://random.url.as.key":"random/value"
}
}
Run Code Online (Sandbox Code Playgroud)
有:
Package package = new Package();
package.name = "package_name";
package.type.Add(new Dictionary<string, string>() { { "http://random.url.as.key", "random/value" } });
Run Code Online (Sandbox Code Playgroud)
我明白了:
{
"name":"package_name",
"type":
[
[
{
"Key":"http:\/\/random.url.as.key",
"Value":"random\/value"
}
]
]
}
Run Code Online (Sandbox Code Playgroud)
同时,用:
var package = new
{
name = …Run Code Online (Sandbox Code Playgroud)