LINQ(Language-INtegrated Query语言整体的查询),LINQ就像数据库里的SQL查询语句一样,对数据进行查询,排序等等工作。
LINQ的语法和SQL的语法也基本类似,不同也就是LINQ的select语句放在最后面。
eg:
result =
from customer in customers//从那选择查询
where customer.FirstName == "Donna"//查询满足的条件
select customer;//映射
LINQ语言中的关键字:
LINQ查询的一些例子
using System; using System.Collections.Generic; using System.Linq;//LINQ的namespace using System.Text; using System.Threading.Tasks; namespace ConsoleApplicationLINQ { class Program { static void Main(string[] args) { int[] arr = new int[] { 8, 5, 89, 41, 1, 2, 3, 65, 1 };//创建一个arr数组,用于LINQ的查找 var m = from n in arr//从arr数组里查找n where n < 5 //n的条件是小于5 orderby n//按照n的大小排序 select n;
arr[2] = 4;
foreach (var n in m) { Console.WriteLine(n); } } } }
输出结果为
1
1
2
3
4
注意到最后的输出结果中有4,LINQ语言中query查询的的声明与初始化并没有真正的执行查询操作,query是在foreach语句中才真正执行的,所以在声明了查询之后,再修改数组里面的值,query查询是对修改后的数组进行查询,所以里面包括新的数值4.
如果要在声明查询时就要执行查询。以避免后面的修改对查询产生影响,可以使用ToList()或者ToArray()方法缓存查询得到的结果。
例如将上面的声明改为:
var m =
(from n in arr
where n < 5
orderby n
select n).ToList();
输出的结果就为
1
1
2
3