Linq 处理 List数据
2018-06-18 04:02:23来源:未知 阅读 ()
概述:LINQ又称为语言集成查询,是一种类似于SQL的一种查询语言。语言集成查询让开发人员可以使用.NET程序语言(如C#)去查询数据源,主要数据源为内存中的集合对象、ADO.NET数据集、数据库以及XML,开发人员不用去分门别类地学习众多的查询语法就可以轻松地查询异构数据源。
三种表现形式:复合查询、Lambda表达式以及混合查询。
1、查询集合数据方法依次为:
复合查询:
var result=from n in dataList orderby n.TimeWritten descending select n; //可以将n看做是dataList,得到的结果是dataList里面所有值按时间字段的降序排列。
Lambda表达式查询:
var result=dataList.Select(p=>new{p.ID,p.Name,p.TimeWritten}); //Lambda表达式由匿名方法演变而来。这段Code中p为参数,多个参数可用(p,m..)表示。"=>"为推出符号,后面为返回值。该事例的返回值为对象中指定的字段。
混合查询:
var result=from n in dataList select n.OrderByDescending(p => p.TimeWritten); //查询集合所有数据按照时间字段降序来排序。升序为OrderBy()。
2、删除数据
List<NewSingle> dataList=new List<NewSingle>();
NewSingle single=dataList.Single(p=>p.ID==1);
dataList.DeleteOnSubmit(NewSingle);
dataList.SubmitChanges();
3、插入数据
NewSingle single=new NewSingle();
single.Name="Test1";
single.TimeWritten=this.DateTime.Now.ToString();
single.Subject="subject";
dataList.InsertOnSubmit(single);
dataList.SubmitChanges();
4、修改数据
NewSingle single=from n in dataList where n.ID == 3 select n;
single.Name="Test2";
single.TimeWritten="2011-3-17";
single.Subject="subject2";
dataList.SubmitChanges();
注:linq中不支持Convert转换。
5、查询绑定DropDownList
var data=from n in dataList select new { Name=n.Name,ID=n.ID};
DropDownList1.DataTextField="Name";
DropDownList1.DataValueField="ID";
DropDownList1.DataSource=data;
DropDownList1.DataBind();
6、绑定GridView
GridView1.DataSource=dataList.Select(p=>p);
GridView1.DataBind();
7、表联接
var result=from a in mytest.stuInfo join b in mytest.stuMarks on a.stuNo equals b.stuNo (into c) select new {Name=a.stuname,b.writtenExam};
8、其他方法
DeleteAllOnSubmit<T>(object) 删除T类型的对象
Where() 条件查询返回bool
GroupBy() 分组
SubString(n,m) 从n开始截取m条数据
Skip(number)跳过指定数量的项 】常用于表格分页
Take(number) 提取指定数量的项 】
TakeWhile() 根据指定条件提取
SkipWhile() 根据指定条件跳选项,从第一个不符合小件的项开始提取
ThenBy(s=>s.Name) 复合排序,出现在多字段列表中,置于在OrderBy后面
Distinct() 过滤重复数据
ToList() 转换成List
Count() 数据总数
Max()/Min() 最大值/最小值
Average() 平均值
Sum() 总和
Range() 例:num=Enumerable.Range(1,10) 从1开始产生十个数据
Repeat(重复值,重复次数) 生成重复项
传送门:http://blog.163.com/lm_regina/blog/static/17419653620110287530239
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring Cloud Gateway 全局通用异常处理 2020-06-08
- 聊聊 OAuth 2.0 的 Token 续期处理 2020-06-08
- 架构设计 | 异步处理流程,多种实现模式详解 2020-06-04
- 数据结构:用实例分析ArrayList与LinkedList的读写性能 2020-06-04
- 常用API - Scanner、Random、ArrayList 2020-05-31
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash