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

如题所述

你的xml文件中有中文,所以<att><![CDATA[你好]]></att>

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

如果我针对第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)

温馨提示:内容为网友见解,仅供参考
无其他回答

c#中 xml可以序列化到一个List,能不能序列化到一个Dictionary?
\/\/两种写法都可以 \/\/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集...

C#实现对象序列化的三种方式
XML序列化可以提高可读性,以及对象共享和使用的灵活性。XML序列化将对象的公共字段和属性或方法的参数和返回值序列化为符合特定XML格式的流。XML序列化代码如下:XML反序列化代码如下:最终执行结果如下:我们可以直观地看到XML序列化的结果,可读性大大增强,但XML也存在自身不足。JSON序列化是目前广泛使...

C#中的序列化与反射?
DotNet中的序列化方法有三种:XML 序列化、SOAP 序列化和二进制序列化。若是序列化到文件的话,前两者生成的是 XML 文件,二进制序列化生成二进制文件。比如我做一个软件的配置信息,或者网站的配置,就像数据库连接地址等,我们的配置信息是一个类来管理的,而在磁盘上对应一个xml文件来存储这个配置信...

如何将一个List<Object>序列化到一个文件中
1、序列化:建议用序列化工具 ,若要序列化为xml可以用 XmlSerializer, .net 自带,若是序列化为json字符串,可以用Newtonsoft.Json这个工具。具体用法自己搜索一下;2、将上面生成的字符串写入到文件,下面是我自己常用的一个文件写函数 \/\/\/ \/\/\/ 写文件 \/\/\/ \/\/\/ 文件路径 \/\/\/ 文件内容 pu...

C#静态类可以序列化吗?
问题1:可以 问题2:一样可以,只是不能用现有提供的方法,需要自己实现,比如序列化成xml文件时,可以序列化关键字符,也可以整个xml文件加密

c#结构体数据的存取
读取\/写入文件可以用FileStream,保存结构体数据可以用序列化,也可以建一个byte数组然后手动把结构体中的每个字段用BitConverter转换成byte[],再拷贝到之前建的byte数组里。

C# 中的字典Dictionary
小伙伴们,今天要和大家分享的是C#中字典的使用。在日常生活中,字典在开发过程中被广泛使用,尤其是在参数传递、序列化以及系统配置参数序列成字典等方面,可以随时存储和取用。简单来说,字典是一个常用的泛型集合类,用于存储键值对(Key-value)数据结构。通过键(Key)获取对应的值(Value),其查询...

C#中的序列化
.NET Compact Framework 2.0 支持XML序列化,不支持二进制序列化和SOAP序列化。而 .NET Compact Framework 1.0 连XML序列化都不支持。不过 OpenNETCF 1.x 为 .NET CF 1.0 实现了一个XML序列化的类,这个类在 OpenNETCF.Xml.dll 程序集中可以找到。序列化和反序列化用于将一个对象保存到文件,和...

c#中序列化是什么,怎么用,什么情况下用,不用有什么后果?
c#中序列化就是把一个对象保存到一个文件或数据库字段中去。序列化用途:1、在进程下次启动时读取上次保存的对象的信息 2、在不同的AppDomain或进程之间传递数据 3、在分布式应用系统中传递数据 常见的序列化的方法:1、BinaryFormatter 2、SoapFormatter 3、XML序列化 用法:BinaryFormatter的用法大致如下:...

c# List<Rectangle> 数据保存
你是想数据持久化吗?首先,如果Rectangle是你自定义的类的话,必须保证这个类里面的所有状态都是可以储存的,并且要有[Serializable()]标识.然后你可以用 XmlSerializer类或者 BinaryFormatter类将其逐一序列化.序列化后。可以将其序列化成XML存进数据库也可以序列化成2进制保存.=== 首先,你想保存某个类...

相似回答
大家正在搜