Linq入门
一、Linq需要的C#语法支持:
1、隐式变量的使用var
var使用时必须初始化 var是强类型数据
2、自动属性:public string FirstName{get ;set;}
3、扩展方法
4、委托——》匿名方法——》lambda表达式
5、对象初始化器 集合初始化器
二、Linq的基本语法:
{
string[] names={"aaa","bbb","ccc","abc"};
IEnumerabl<string> query=names
.Where(n=>n.Contans("a")) //根据lambda表达式返回的bool值判定是否返回数据,为True则返回当前数据(选择)
.OrderBy(n=>n.Length) //OrderBy根据lambda返回的数据值的大小对数据进行排列
.Select(n.ToUpper()); //对选择出来的数据进行操作(投影)
在简单数据时候这两种方法都一样,但是执行复杂查询的时候,用from就要好了:(let关键字引入新的范围变量 selectMany Join GroupJoin)
但是对于一些没有对应查询表达式关键字的运算符就只能用方法语句了。下面列出的是对应有查询关键字的运算符:Where\Select\SelectMany\OrderBy\ThenBy\OrderByDescending\ThenByDescending\GroupBy\Jion\GroupJion
IEnumberable<string> query=
from n in names
where n.Contains("a")
orderby n.Length
select n.ToUpper();
组合查询语法
int matches = (from n in names where n.Contains("a") select n).Count(); // 3
// 按字母顺序排序的第一个名字
string first = (from n in names orderby n select n).First(); // Dick
}
三、延迟执行 http://www.cnblogs.com/lifepoem/archive/2011/10/29/2228589.html
延迟执行是什么意思?
怎眼合理利用延迟执行,避免延迟执行带来的一些错误?
需要注意的是,如果在上面的查询后面加上一个转换运算符如ToList,那么query会被立即执行,这样,单个list就会取代上面的整个对象模型。
http://www.cnblogs.com/lifepoem/archive/2011/10/27/2226556.html
最新文章
- PHP工作笔记:数组转字符串与字符串转数组
- 离散信源的分类和数学模型&;&;离散无记忆信源的熵
- android-8~23 View.java - dispatchTouchEvent源码
- 调整Linux磁盘分区的大小的方法
- eclipse安装
- Vue和Bootstrap的整合之路
- 轻松学JVM(二)&mdash;&mdash;内存模型、可见性、指令重排序
- bootstrap select多选
- IE下常见的js兼容问题
- gb_tree平衡树源码
- 深度学习之 cnn 进行 CIFAR10 分类
- 第九届蓝桥杯C/C++B组省赛感想
- ubuntu1604 golang环境
- Tensorflow数学运算
- 【洛谷P2704】炮兵阵地
- Android中将十六进制 颜色代码 转换为int类型数值
- canvas 写一个刮刮乐抽奖
- 使用Python完成表格自动输入
- npm install --save
- python-opencv boundingRect使用注意