结合:http://blog.csdn.net/ycwol/article/details/42102939,多谢这位博主 dgdisme
官方API:https://msdn.microsoft.com/zh-cn/library/bb397678.aspx
介绍:对于编写查询的开发人员来说,LINQ 最明显的“语言集成”部分是查询表达式。 查询表达式是使用 C# 3.0 中引入的声明性查询语法编写的。 通过使用查询语法,您甚至可以使用最少的代码对数据源执行复杂的筛选、排序和分组操作。 您使用相同的基本查询表达式模式来查询和转换 SQL 数据库、ADO.NET 数据集、XML 文档和流以及 .NET 集合中的数据。
·First - 返回集合中的第一个元素;不延迟
·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟
·Last - 返回集合中的最后一个元素;不延迟
·LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)
·ElementAt - 返回集合中指定索引的元素;不延迟
·ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟
·Contains - 判断集合中是否包含有某一元素;不延迟
·Any - 判断集合中是否有元素满足某一条件;不延迟
·All - 判断集合中是否所有元素都满足某一条件;不延迟
·Count - 返回集合中的元素个数,返回int;不延迟
·LongCount - 返回集合中的元素个数,返回long;不延迟
·Sum - 集合应为数字类型集合,求其和;不延迟
·Min - 返回集合的最小值;不延迟
·Max - 返回集合的最大值;不延迟
·Average - 集合应为数字类型集合,求其平均值;不延迟
·Aggregate - 根据输入的表达式获取一个聚合值;不延迟
·Cast - 将集合转换为强类型集合;延迟
·DefaultIfEmpty - 查询结果为空则返回默认值;延迟
·SequenceEqual - 判断两个集合是否相同;不延迟
·OfType - 过滤集合中的指定类型;延迟
·ToArray - 将集合转换为数组;不延迟
·ToList - 将集合转换为List
·ToDictionary - 将集合转换为
引用命名空间:using System.Linq;
例如: var 查询变量 = (from tempVariable in List select tempVariable).LastOrDefault();
例如: var 查询变量 = (from tempVariable in Listwhere (条件表达式"!=,==,&&,||") select tempVariable);
int[] linqData2 = { 1, 2, 3, 4, 5,2};
void Start () {
var datas = from data in linqData2 where data == 2 select data;
foreach(var item in datas){
print (item);
}
}
关键字 |
|
from | 指定范围变量和数据源 |
where | 根据bool表达式从数据源中筛选数据 (条件表达式 !=,==,&&,||) |
select | 指定查询结果中的元素所具有的类型或表现形式 (在select子句上,可以非常灵活的处理查询到的元素,然后再把结果返回) |
group | 对查询结果按照键值进行分组(IGrouping (根据语法的规定,LINQ表达式必须以from子句开头,以select或group子句结束。 所以除了使用select来返回结果外,也可以使用group子句来返回元素分组后的结果。) |
into | 提供一个标识符,它可以充当对join、group或select子句结果的引用 (into子句作为一个临时标识符,用于group、select、join子句中充当其结果的引用。) |
orderby | 对查询出的元素进行排序(ascending/descending) |
join | 按照两个指定匹配条件来Equals连接两个数据源 (如果一个数据源中元素的某个属性可以跟另外一个数据源的中元素的某个属性进行相等比较,那么这两个数据源可以用join子句进行关联。) |
let | 产生一个用于存储查询表达式中的子表达式查询结果的范围变量 (let子句用于在LINQ表达式中存储子表达式的计算结果。) |