博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#学习笔记:linq和xml
阅读量:6036 次
发布时间:2019-06-20

本文共 3086 字,大约阅读时间需要 10 分钟。

linq语言是关系型数据库和面向对象语言之间的桥梁性的接口

--------------------------linq的查询操作---------------------------------------------

1.获取数据源

2.创建查询

3.执行查询

using System.Linq;using System;class IntroToLINQ{    static void Main()    {        // LinQ查询的三个不能分:        //  1. 设置数据源.        int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };        // 2. 查询操作.        // numQuery 是一个泛型接口 IEnumerable
var numQuery = from num in numbers where (num % 2) == 0 select num; // 3. 执行查询操作. foreach (int num in numQuery) { Console.WriteLine("{0} ", num ); } Console.Read(); }}

-------------------------linq的查询数据源---------------------------------------------

1.当数据源是数组时,它隐式支持泛型 接口,所以可以直接进行查询

2.当数据源是xml文件时,不可以直接查询,而是需要通过转化成XElement

3.查询sql数据库同样需要转化

Northwnd db = new Northwnd(@"c:\文件名.mdf");// 数据库查询IQueryable
custQuery = from cust in db.Customers where cust.City == "A" select cust;

该查询表达式包含三个子句:from、where 和 select。from 子句指定数据源,where 子句应用筛选器,select 子句指定返回的元素的类型。

----------------------Linq的查询的执行--------------------------------------------------

1.延迟查询

先将查询的内容的放在一个查询变量

然后利用foreach进行查徇

for ( num in numList ){    //对数据进行的操作}

2.立即查询

对一系列源元素执行聚合函数的查询必须首先循环访问这些元素。 CountMaxAverageFirst 就属于此类查询。 由于查询本身必须使用 foreach 以便返回结果,因此这些查询在执行时不使用显式 foreach 语句。 另外还要注意,这些类型的查询返回单个值,而不是 IEnumerable 集合。 

-----------------------xml文件--------------------------------------------------------

Oberon's Legacy
Corets, Eva
5.95

1、往<bookstore>节点中插入一个<book>节点:

(1)首先打开xml文件

XmlDocument xmlDoc=new XmlDocument();   xmlDoc.Load("bookstore.xml");

(2)找到bookstore这一节点

XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找

(3)创建book节点,并设置它的属性

xe1.SetAttribute("genre","李赞红");//设置该节点genre属性   xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性

(4)将创建的节点添加到book节点上,并存储文件

root.AppendChild(xe1);//添加到
节点中 xmlDoc.Save("bookstore.xml");

2.修改节点(找到节点后遍历其子节点,找到指定节点删掉即可

XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点   foreach(XmlNode xn in nodeList)//遍历所有子节点   {    XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型    if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”    {     xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”      XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点     foreach(XmlNode xn1 in nls)//遍历     {      XmlElement xe2=(XmlElement)xn1;//转换类型      if(xe2.Name=="author")//如果找到      {       xe2.InnerText="亚胜";//则修改       break;//找到退出来就可以了      }     }     break;    }   }

3.删除节点

与修改类似,通过遍历找到节点后利用removeall()函数删除

XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;    foreach(XmlNode xn in xnl)   {    XmlElement xe=(XmlElement)xn;    if(xe.GetAttribute("genre")=="fantasy")    {     xe.RemoveAttribute("genre");//删除genre属性    }    else if(xe.GetAttribute("genre")=="update李赞红")    {     xe.RemoveAll();//删除该节点的全部内容    }   }   xmlDoc.Save("bookstore.xml");

 

转载于:https://www.cnblogs.com/tjullin-251249/p/4460854.html

你可能感兴趣的文章
推荐几款专门为Github党量身定做的Chrome插件
查看>>
黑盒测试和白盒测试
查看>>
粘包、丢包及TCP信息收发
查看>>
Unity之使用技巧记录
查看>>
[四] java虚拟机JVM编译器编译代码简介 字节码指令实例 代码到底编译成了什么形式...
查看>>
.NET连接数据库方式
查看>>
JavaScript对象系统的使用
查看>>
HyperSnap 6捕获的视频图片都是一片漆黑
查看>>
时间选择控件YearPicker(基于React,antd)
查看>>
病毒文件
查看>>
1. lvs+keepalived 高可用群集
查看>>
学习新语言的练手项目
查看>>
React中路由传参及接收参数的方式
查看>>
Android调用系统相机拍照保存照片很小解决方案
查看>>
redis
查看>>
从零开始学习PYTHON3讲义(八)列表类型跟冒泡排序
查看>>
Excel应该这么玩——0、初衷:用IT方法玩Excel
查看>>
python小白项目推荐
查看>>
Es学习第二课, ES安装和客户端使用
查看>>
git学习------>git commit命令的默认编辑器的修改
查看>>