c#学习笔记之LINQ

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

原文地址:https://www.cnblogs.com/zyqBlog/p/4458065.html