Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字典(字符串、列表<;字符串>;)序列化为xml_C#_.net_Xml_Serialization - Fatal编程技术网

C# 将字典(字符串、列表<;字符串>;)序列化为xml

C# 将字典(字符串、列表<;字符串>;)序列化为xml,c#,.net,xml,serialization,C#,.net,Xml,Serialization,可能重复: 我有一个示例类: public class SampleClass { public Dictionary<string, List<string>> SampleProperties {get;set;} } 公共类SampleClass { 公共字典SampleProperties{get;set;} } 我想将这个类序列化为xml。 我怎么能做到? 我希望输出xml与此示例类似: <DataItem> <key>

可能重复:

我有一个示例类:

public class SampleClass
{
   public Dictionary<string, List<string>> SampleProperties {get;set;}
}
公共类SampleClass
{
公共字典SampleProperties{get;set;}
}
我想将这个类序列化为xml。 我怎么能做到? 我希望输出xml与此示例类似:

<DataItem>
   <key>
      <value></value>
      <value></value>
      <value></value>
   </key>
</DataItem>


请尝试以下代码片段

var dict = new Dictionary<string, List<string>>();
dict.Add("a1", new List<string>(){"a1","a2","a3"});

XElement root = new XElement("DataItem");

foreach(var item in dict)
{
  XElement element = new XElement("Key",item.Key);
  item.Value.ForEach (x => element.Add (new XElement("Value",x)));
  root.Add(element);
}
var dict=newdictionary();
dict.Add(“a1”,新列表(){“a1”,“a2”,“a3”});
XElement根=新XElement(“数据项”);
foreach(dict中的var项目)
{
XElement元素=新XElement(“键”,item.Key);
item.Value.ForEach(x=>element.Add(新的XElement(“Value”,x)));
root.Add(元素);
}

您可以使用Linq to Xml从SampleClass对象创建所需的Xml:

SampleClass sample = new SampleClass();
sample.SampleProperties = new Dictionary<string, List<string>>() {
    { "Name", new List<string>() { "Greg", "Tom" } },
    { "City", new List<string>() { "London", "Warsaw" } }
};

var result = new XElement("DataItem", 
                 sample.SampleProperties.Select(kvp =>
                    new XElement(kvp.Key, 
                      kvp.Value.Select(value => new XElement("value", value)))));
result.Save(path_to_xml);

你字典的关键是一个字符串。您希望它显示在结果XML中的什么位置?您能否提供一个示例数据和示例预期的XML?GregTomLondonWarsaw。我想将Name或City保存为key,将value保存为ListIt's work;)你能帮我把xml序列化到这个类吗?