Linq To XML:论XStreamingElement与XElement的不同
来源:互联网 发布:java培训讲师 编辑:程序博客网 时间:2024/06/06 17:34
XStreamingElement 从名字上面,已经能看出它是使用流的模式来创建Element
看到它的MSDN在线文档(http://msdn.microsoft.com/zh-cn/library/system.xml.linq.xstreamingelement(v=vs.95).aspx#Y200)
是这么解释的
XElement 在操作结点时,是把变量加到结点上,而XStreamingElement则是把变量内存地址加到结点上
变量自身的内存占用和变量地址的内存占用显然有比较大的差距,而这也直接影响着性能,这些步骤在循环中发生,结点的个数也
直接拉开内存占用大小的距离。所以XStreamingElement比较适合创建比较大的XML文件
另一个特征就是XStreaming的延迟查询能力,序列化发生的次数只有一次,也就是最后循环执行完毕以后才发生!
下面以一个例子来说明他们之间的区别
以下例子来自英文版电子书
Pro LINQ: Language Integrated Query in C# 2010
第246页
XElement
输出
结果看到,第三个元素并没有变成"Ringo",因为它在循环时就在创建XML树了,故之后无论怎么修改那个数组
都跟该XML树无关
XStreamingElement
输出
从结果已经可以看出XStreamingElement是怎么工作的了,在Console.WriteLine(xNames);这一行
XML树才真正被创建,故在这一行代码执行之前,对数组的任何改变都是有效的
- Linq To XML:论XStreamingElement与XElement的不同
- Linq To XML:论XStreamingElement与XElement的不同
- Linq to XML 之XElement的Descendants方法的新发现
- Linq To Xml 备忘录1(XDocument, XElement的使用)
- Linq to Xml:将XML字符串转化成 XElement 类型
- LINQ To XML:设置子元素的值、添加子元素或移除子元素(XElement.SetElementValue)
- C# Linq to xml学习 用XElement类读写XML文档(用作配置文档)
- Linq技术二:Linq to XML及xml增删改查的不同实现方式
- XElement与XmlElement相互转换的代码
- 使用Dom与Linq to Xml
- LINQ to XML 的简单应用
- linq to xml查找元素的值
- LINQ To XML的一些方法
- LINQ to XML的增、删、改
- 使用LINQ to XML
- LINQ TO XML
- LINQ TO XML学习
- linq to xml demo
- java基础加强2--注解
- 某程序员的和软件工程师的辞职报告
- Linux 常见编译错误总结
- 添加右键菜单
- linux查看内核版本、系统版本、系统位数(32or64)
- Linq To XML:论XStreamingElement与XElement的不同
- poj3195 Generalized Matrioshkas(栈)
- notepad++技巧
- HDU 1142
- Proxool抛出的警告 was active for 365172 milliseconds and has been removed automaticaly
- C preprocessor
- Proxool连接池的使用心得
- mysql基本用法
- eclipse中修改svn的用户名和密码