LinQ的一些基本语句
LINQ(Language Integrated Query)即语言集成查询。它是一种语言特性和API,使得你可以使用统一的方式编写各种查询,查询的对象包括xml、对象集合、SqlServer数据库等。
1、LINQ To Object 负责对象的查询
2、LINQ To XML 负责对XML的查询
3、LINQ To ADO.NET 负责数据库的查询
查询例如:
int[] numbers=new int[]{1,2,7,9,3,6}
List<int> array=new List<int>();
foreach(int temp in numbers)
{
if(temp%2==0)
{
array.Add(temp);
}
}
LINQ 查询:
int[] numbers=new int[]{1,3,5,9,2,7}
var even=numbers.where(p=>p%2==0).select(p=>p).OrderBy Descending(p=>p);//从数组中提取偶数并降序排列
even.sort();//升序
even.Reverse();//降序
Lambda表达式的进化:
C# 1.0 委托
C# 20 匿名方法
C# 3.0 Lambda表达式
委托:
delegate string ProcessString(string input);
ProcessString p=new ProcessString(Lowerlt);
foreach(string name in FoxRive)
{
console.WriteLine(p(name));
}
Private string Lowerlt(string input)
{
return input.ToLower();
}
匿名方法:
ProcessString p=new ProcessString(string input)
{
return input.ToLower();
}
foreach(string name in FoxRive)
{
console.WriteLine(p(name));
}
Lambda表达式:
ProcessString p=input=>input.ToLower();
foreach(string name in FoxRive)
{
console.WriteLine(p(name));
}
查询语句示例:
示例一:
int[] numbers=new int[]{6,4,3,2,1,9,7,8,5}
var even=numbers.where(p=>p%2==0)
.select(p=>{console.write(p.tostring())}); return p;)
foreach(var item in even)
{
console.writeline(item);
}
示例二:
int[] numbers=new int[]{6,4,3,2,1,9,7,8,5}
var even=from number in numbers
where number%2==0)
.orderby number descending select number;
foreach(var item in even)
{
console.writeline(item);
}
复杂查询语句示例:
List<Person> p=GetFoxRiver();
var q=from a in p where a.Age<30 && a.FristName.Length=7
orderby a.Age DEscending
select new {Name=a.FristName+""+a.LastName,Age=a.Age};
foreach(var item in even)
{
console.writeline(item.Name+""+item.Age);
}
聚合类
int[] array=new int[]{1,3,7,9,2,14}
console.writeline("Max:{0}",array.Max());//返回最大值
console.writeline("Min:{0}",array.Min());//返回最小值
console.writeline("Average:{0}",array.Average());//返回平均值
var result=(from p in array where p.Startswith(',') select p).count();
console.writeline("count:{0}",result);//返回数组中总共几个数
分区类
var result=array.Take(3);//从序列开头返回指定数量,连续元素
结果:1,3,7
var result=array.Takewhere(p=>p%2==0);//满足条件就返回元素,不满足就不返回
结果:2,14
var result=array.where(p=>p%2==0).Take(1);//
结果:2
var result=array.skip(2);//跳出序列中指定数量的元素返回剩余值元素
结果:3,7,9,2,14
var result=array.skipwhere(p=>p》3);//
结果:7,9,2,14
集合类
var result=array.Distirot();//返回序列中非重复元素
生成类:
var result=Enumerable.Repeat("a",10).tolist();//生成包含一个重复值的序列
var result=Enumerable.Range(2,10).tolist();//生成一个指定范围内的序列
LinQ的一些基本语句的更多相关文章
- 浅谈sql 、linq、lambda 查询语句的区别
浅谈sql .linq.lambda 查询语句的区别 LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量 ...
- sql 、linq、lambda 查询语句的区别
LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量中被查询的值 [group by 条件] Lambda ...
- linq直接执行sql语句
1.ExecuteQuery方法 看命名,我们很容易联想到ado.net里熟悉的Command的ExecuteNonQuery方法,但是VS的智能提示告诉我们这个方法返回的是一个泛型集合,应该&quo ...
- sql、linq和lambda查询语句比较inner join和group by组合使用及匿名类型的处理
使用EF自己做的小功能需要遇到inner join和group by组合使用及匿名类型的处理,搜了很多,基本不能满足自己的需要,所以总结了也实现了就自己写出来,已备查看及伙伴查询参考(一般的语句查询就 ...
- C# List中写出LINQ类似SQL的语句
很多时候,从一个关系表中挑出一个我们需要的元素列表采用SQL语句是再容易不过的了,其实C#的List中也可以采用类似的方法,虽然List中集成了Select(), Where()等语句,不过如果你的判 ...
- 获取linq生成的sql语句
命名空间:using System.Data.Objects; var query = db.TxtRes.Join(db.LangRes, a => new { id1 = a.ResID, ...
- linq查询时查询语句中附带多个查询时“已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭”
主要原因是因为EF采用的 DataReader来进行数据的存储,此时connection使用的是同一个. 例如: list = _tzNewsService.GetAll().Where(w => ...
- 请问在 .NET Core 中如何让 Entity Framework Core 在日志中记录由 LINQ 生成的SQL语句?
using dotNET.Core; using Microsoft.Extensions.Logging; using System; using System.Collections.Generi ...
- 打印Linq生成的SQL语句
var t1 = source.OrderBy<T>(orderby).Skip<T>(_skip).Take<T>(_take); var t2 = t1.ToO ...
随机推荐
- 域名在微信朋友圈内分享需要ICP备案 杜绝不良信息传播
就在刚刚,腾讯微信团队发布公告表示域名在朋友圈内分享需要ICP备案,杜绝打击不良互联网信息的传播.公告称根据互联网管理相关规定,即日起在微信朋友圈内分享的域名,请在2014年12月31日前完成ICP备 ...
- JavaScript中,window.opener是什么?window.parent和window.opener有啥区别?
来自CSDN的问答: window.opener是什么啊? ++++++++++++++++++++++++++++++++++++++++++++++++++ 弹出本窗体的句柄 比如你想点一个按钮直 ...
- Python webpy微信公众号开发之 回复图文消息
新建图文回复模板reply_pictext.xml: $def with (toUser,fromUser,createTime,title1,description1,picurl1,url1)&l ...
- hibernate操作数据库例子
1.工程目录结构如下 2.引入需要的jar包,如上图. 3.创建持久化类User对应数据库中的user表 package com.hibernate.配置文件.pojo; import java.sq ...
- Linux的防火墙--IP Tables
导读 IP Table已经集成在Linux 2.4及以上版本的内核中,同Windows下的众多“傻瓜”防火墙不同的是,IP Table需要用户自己定制相关规则.下面我就给大家简单介绍一下关于防火墙的基 ...
- Unity3d LineRenderer画线
原地址:http://www.cnblogs.com/88999660/archive/2013/01/21/2869498.html 1. 画多条线 画多条线需要在场景中放置多个GameObjec ...
- 算法训练 Torry的困惑
问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.Torry突然想到一个问题,前10.100.1000.10000……个质数的乘积是多少呢?他把这个问题告诉老师 ...
- MFC获取系统当前时间的几种方法
1.使用CTime类 CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime(); str=tm.Format("现在时间是%Y年% ...
- 查看Eclipse中的jar包的源代码:jd-gui.exe
前面搞了很久的使用JAD,各种下载插件,最后配置好了,还是不能用,不知道怎么回事, 想起一起用过的jd-gui.exe这个工具,是各种强大啊!!! 只需要把jar包直接扔进去就可以了,非常清晰,全部解 ...
- Markdown 语法速查表
Markdown 语法速查表 1 标题与文字格式 标题 # 这是 H1 <一级标题> ## 这是 H2 <二级标题> ###### 这是 H6 <六级标题> 文 ...