LINQ简介

LINQ(Language Integrated Query),即语言集成查询是一组用于C#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。

LINQ的读法:lin k 很多人会误读为lin Q
LINQ的全称:Language-Integrated Query,语言集成查询
LINQ的关键词:from, select, in, where, group by, orderby, …
LINQ的写法:
 

from 临时变量 in 实现IEnumerable<T>接口的对象
where条件表达式
[orderby 条件]
[group by 条件]
select 临时变量中被查询的值
  • example:(表达式写法)
 
//masterList是包含多个Master对象的一个列表
var res = from m in masterList
where m.Level > 8
select m.Name;
//此时res是一个包含符合条件的Name列表
 

扩展方法

  • example:(扩展方法写法)
    tatic bool Test1(Master master)
    {
        if(master.Lever > 8)
            return true;
        return false;
    }
    
    var res = masterList.Where(Test1);
    //此时res中包含的跟第一个example中的元素是完全相同的
     
    • example:(采用Lambda表达式的写法)
     
      
    var res = masterList.Where(m=>m.Level>8)
    //结果完全相同
      
     

假如限制条件有多个
example:(表达式写法)
 

//masterList是包含多个Master对象的一个列表
var res = from m in masterList
where m.Level > 8 && m.Age > 50 //通过&&添加并列的条件
select m.Name;

example:(采用Lambda表达式的写法)
 

var res = masterList.Where(m=>m.Level > 8 && m.Age > 50);

 2.2  join子句

我们可以使用join来结合两个或更多集合中的数据,它接受两个集合然后创建一个临时的对象集合

 
var query = from s in students
  join c in course on s.SID equals c.SID

2.3 let子句

let子句接受一个表达式的运算并且把它赋值给一个需要在其他运算中使用的标识符,它是from...let...where片段中的一部分

var query = from a in groupA
   from b in groupB
   let sum = a + b
   where sum < 12
   select new(a,b,sum);

2.8 查询延续: into子句

查询延续子句可以接受查询的一部分结构并赋予一个名字,从而可以在查询的另一部分中使用

var someInt = from a in groupA
    from b in groupB
    into groupAandB
    from c in groupAandB
    select c;

猜你喜欢

转载自www.cnblogs.com/123-com/p/12289757.html