c#中 xml可以序列化到一个List,能不能序列化到一个Dictionary?

2024-12-31 14:34:21
推荐回答(1个)
回答1:

  1. 你的xml文件中有中文,所以

  2. 你贴出的代码对于将类序列化成xml文件,是非常好用的。但是你的问题好像是读取xml文件,并且转换成Dictionary(不知道我的理解对不对)

  3. 如果我针对第2点的理解是对的,那么建议你采用linq to xml实现



using System.Xml.Linq;
XElement element = XElement.Load(@"d:\test.xml");

var query = (from c in element.Descendants("item")
        select new { Id = c.Element("id").Value, Att = c.Element("att").Value })
        .ToDictionary(e => e.Id);

        //两种写法都可以
        //var query = element.Descendants("item").ToDictionary(c => c.Element("id").Value);

foreach (string key in query.Keys)
{
    Console.WriteLine("key:{0},Att:{1}", key, query[key].Att);
}


    4.如果我的第二点理解错误,那么就更简单了。你已经得到了List集合,转换成Dictionary只需要list.ToDictionary(c=>c.Key)