LINQ查询句法基础分析

开发 后端
这里介绍LINQ查询句法是使用标准的LINQ查询运算符来表达查询时一个方便的声明式简化写法。该句法能在代码里表达查询时增进可读性和简洁性,读起来容易,也容易让人写对。

在向大家详细介绍LINQ查询句法之前,首先让大家了解下集合初始化器,然后全面介绍LINQ查询句法。

集合初始化器

  1. public class Person  
  2. {  
  3. public string username { get; set; }  
  4. public int age { get; set; }  
  5. public override stringToString()  
  6. {  
  7. return string.Format("username:{0} age:{1}", this.username, this.age);  
  8. }  
  9. }  
  10. var persons = new List<Person> {  
  11. new Person {username = "a"age=1},  
  12. new Person {username = "b"age=2}};  
  13. foreach(var p in persons)  
  14. Console.WriteLine(p.ToString()); 

编译器会自动为你做集合插入操作。如果你为Hashtable初始化的话就相当于使用了两个对象初始化器。

LINQ查询句法

  1. var persons = new List<Person> {  
  2. new Person {username = "a"age=19},  
  3. new Person {username = "b"age=20},  
  4. new Person {username = "a"age=21},  
  5. };  
  6. var selectperson = from p in persons where p.age >= 20 select p.username.ToUpper();  
  7. foreach(var p in selectperson)  
  8. Console.WriteLine(p); 

LINQ查询句法是使用标准的LINQ查询运算符来表达查询时一个方便的声明式简化写法。该句法能在代码里表达查询时增进可读性和简洁性,读起来容易,也容易让人写对。Visual Studio 对查询句法提供了完整的智能感应和编译时检查支持。编译器在底层把查询句法的表达式翻译成明确的方法调用代码,代码通过新的扩展方法和Lambda表达式语言特性来实现。上面的查询句法等价于下面的代码:

  1. var selectperson = persons.Where(p=>p.age>=20).Select(p=>p.username.ToUpper()); 

LINQ查询句法可以实现90%以上T-SQL的功能(由于T-SQL是基于二维表的,所以LINQ的查询语法会比T-SQL更简单和灵活),但是由于智能感应的原因,select不能放在一开始就输入。

【编辑推荐】

  1. Linq匿名类型简单概述
  2. Linq随机读取数据浅析
  3. Linq Lambda表达式全面分析
  4. Linq扩展方法简单分析
  5. 初探Linq局部变量类型
责任编辑:佚名 来源: 博客园
相关推荐

2009-09-09 15:10:35

LINQ查询句法

2009-09-16 10:08:06

LINQ查询

2009-09-15 10:46:04

LINQ to SQL

2009-09-14 10:09:26

LINQ查询结果

2009-09-16 15:41:45

LINQ查询XML文档

2009-09-16 10:48:32

LINQ查询操作

2009-09-14 18:53:27

LINQ查询

2009-09-15 14:58:26

Linq查询本质

2009-09-14 14:49:12

LINQ查询基础知识

2009-09-17 17:03:13

LINQ动态查询

2009-09-14 17:03:32

LINQ模糊查询

2009-09-17 11:08:55

LINQ查询表达式

2009-09-17 08:47:00

Linq查询

2009-09-17 13:54:26

LINQ to XML

2009-09-18 16:41:46

Linq to sql

2009-09-18 16:20:36

LINQ基础

2009-09-17 13:15:20

LINQ查询

2009-09-16 10:38:43

LINQ查询

2009-09-15 15:09:50

Linq本质

2009-09-09 17:02:05

LINQ Expres
点赞
收藏

51CTO技术栈公众号