linq基本操作
一、Linq有两种语法:
1、 方法语法
2、 查询语法
下面举个例子看看这两种方法的区别
比如现在有一个学生类
public class student
{
public string username { get; set; }
public int age { get; set; }
public string sex { get; set; }
}
我们通过一个方法来添加很多同学
public IList<student> GetStu(int n)
{
IList<student> stuList = new List<student>();
for (int i = 0; i < n; i++)
{
student stu = new student();
stu.age = 25 + i;
stu.sex = "男" + i;
stu.username = "张三" + i;
stuList.Add(stu);
}
return stuList;
}
那么这个方法返回的就是一个list集合,下面我们就可以通过linq对这个集合进行操作
首先我们来查询所有的学生
A、查询语法:
var list = GetStu(10);
var result = from s in list
select new { stuname=s.username,sex=s.sex,age=s.age};
这是linq常用的语法from 变量 in 集合
Select 变量
B、方法语法
var result1 = list.Select(s1 => new { username = s1.username, age = s1.age, sex = s1.sex });
这就是方法语法,符合一般的C#语法
这两种方法的执行结果是一样的,唯一的区别就是语法
二、输出的方式
输出的方式也有两种,我们知道linq主要对集合进行操作的,所以一般都需要循环输出
第一种输出方式:
string stt = null;
foreach (var sa in result3)
{
stt += sa.username;
}
Response.Write(stt);
这是我们经常用到的foreach循环
第二种输出方式:
result.ToList().ForEach(s => { Response.Write(s.stuname+s.sex+s.age); });
这种方式很简介,直接调用ForEach方法,方法体内是一个limba表达式
另外说明下ToList()方法作用,在linq中有种延迟执行,就是当我们在from…select时候,返回的结果并没有执行,当我们循环调用的时候才执行,这就是延迟执行,有时候为了立即执行,我们需要用到ToList()
三、下面就来简单说说linq常用的几种查询
1、条件选择查询(where)
比如我们要查询年龄大于26的学生,可以这样写
var result = from s in list
where s.age>26 //条件查询
select s.username;
或者这样写
var result2 = list.Where(s => s.age > 25); //条件查询
2、 查询排序
比如我们要按照学生年龄倒序排列查询
var result = from s in list
orderby s.age descending //排序
where s.age>26 //条件查询
select s.username;
或者这样写
var result3 = list.OrderByDescending(s1 =>s1.age);
3、 数据查询分页显示
使用了Skip和Take方法
Skip作用跳过指定数量的元素
Take的作用是返回指定位置连续数量的元素
var list1 = GetList(50);
for (int i = 0; i < 5; i++)
{
Response.Write("这是第" + (i + 1) + "页");
var result = from s in list.Skip(i * 10).Take(10)
select s;
result.ToList().ForEach(s => { Response.Write(s); });
}
这就是分5页,每页显示10个的分页方式
4|、返回单个元素
用到First(),FirstOrDefault(),single,singleOrDefault()
First():返回第一个元素,如果没有,则抛出异常
FirstOrDefault():返回第一个元素,如果没有,则返回空,一般情况下会返回null
Single:返回的是元素中唯一的元素,如果小于一条,则抛出异常
singleOrDefault:返回的是元素中唯一的元素,如果小于一条,则返回空,通常是null
var result1 = from r in list1
select r;
var rt = result1.First();
result1.Single()
上面只是简单的介绍了下linq的用法,具体项目中用到了,在具体对待
下载:/Files/shuang121/linq的基本操作.doc
linq基本操作的更多相关文章
- 一篇文章教你学会ASP.Net Core LINQ基本操作
一篇文章教你学会ASP.Net Core LINQ基本操作 为什么要使用LINQ LINQ中提供了很多集合的扩展方法,配合lambda能简化数据处理. 例如我们想要找出一个IEnumerable< ...
- C# LINQ 基本操作实例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Linq 基本操作
在linq中排序方法有: OrderBy() --对某列升序排序 ThenBy() --某列升序后对另一列后续升序排序 OrderByDescending() --对某列降序排序 ThenBy ...
- .NETCoreCSharp 中级篇2-3 Linq简介
.NETCoreCSharp 中级篇2-3 本节内容为Linq及其拓展方法.Linq中表达式树的使用 简介 语言集成查询(LINQ)是一系列直接将查询功能集成到C#语言的技术统称.数据查询历来都表示为 ...
- Linq查询基本操作
摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...
- C#中Linq查询基本操作
摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...
- Linq学习笔记四之linq to sql 的基本操作
首先需要在项目中新增一个 linq to sql 的服务 新增项,数据,LINQ TO sql 类的这个方法 第二步需要一个model类,用作映射 [Table] public class S_ZD ...
- linq to xml 基本操作
使用XDocument类来进行简单的xml操作,用于软件参数的设置保存. using System; using System.Collections.Generic; using System.Li ...
- Linq 查询基本操作
- from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 - let 子句 - 复合from子句 - 在某 ...
随机推荐
- SCTP接口模型
一.接口模型 (1)SCTP套接字分为:一到一套接字和一到多套接字: (2)一到一套接字对应一个单独的SCTP关联(一个SCTP关联是两个系统之间的一个连接,不过可能由于多宿原因而在每个断点设计不止 ...
- MYSQL ERROR 1045 (28000) Access denied for user (using password YES)问题的解决
我的Linux是Centos6.7的版本,本机上Mysql突然怎么连接都进不去 报错:MYSQL ERROR 1045 (28000) Access denied for user (using pa ...
- luogu P2387 [NOI2014]魔法森林
传送门 这题似乎不好直接做,可以考虑按照\(a_i\)升序排序,然后依次加边更新答案 具体实现方法是用lct维护当前的树,这里需要维护链上最大的\(b_i\).每次加一条边,如果加完以后没有环直接加, ...
- 织梦自定义表单ajax提交范例
function add_ajaxmessage(){ var dh = document.getElementById("tel"); //表单验证 if($("#te ...
- 《从Paxos到Zookeeper:分布式一致性原理与实践》第一章读书笔记
第一章主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID.CAP和BASE等经典分布式理论,主要包含以下内容: 集中式的特点 分布式的特点 分布式环境的各种问题 ACI ...
- jq的dom操作
代码可以在该网址测试:www.w3school.com.cn/tiy/t.asp?f=jquery_manipulation_detach_move attr 使用函数来设置属性/值:函数参数为选择器 ...
- hystrix学习
概述: 字面意思是豪猪.作用是保护你的应用.Netflix会有服务实时调用,hystrix提供服务降级. 目标是将依赖独立化,防止拖垮整个服务.(属于降级服务.) 作用: 第三方接口超时或失败时, ...
- RESTful支持
springmvc restful 支持 - 哎幽的成长 - CSDN博客http://blog.csdn.net/u012373815/article/details/47208345 RESTfu ...
- HashSet、TreeSet和LinkedHashSet分别基于HashMap、TreeMap和LinkedHashMap
1.如果你需要一个访问快速的Set,你应该使用HashSet: 当你需要一个排序的Set,你应该使用TreeSet: 当你需要记录下插入时的顺序时,你应该使用LinedHashSet. 2.因为Tre ...
- JavaScript编程基础2
1,数据类型相关操作 使用typeof x函数查看变量的数据类型: typeof "John" // 返回 string typeof 3.14 // 返回 number type ...