千家信息网

LINQ入门知识点有哪些

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"LINQ入门知识点有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"LINQ入门知识点有哪些"吧!简 介LINQ 是什么?引用官方术语
千家信息网最后更新 2026年11月03日LINQ入门知识点有哪些

本篇内容主要讲解"LINQ入门知识点有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"LINQ入门知识点有哪些"吧!

简 介

LINQ 是什么?引用官方术语"语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET work 3.5 版中引入的一项创新功能,它在对象领域和数据领域之间架起了一座桥梁。" 那么LINQ给我们带来了什么,请看以下例子:

问:有序列A=int[]{1,2,3,4,5,6,7,8,0}; B=int[]{2,4,7,8,9}。请求出包含A和B共同值的序列C。

如果按照原来的思路,那么编码也许如下:

说明:

List c = new List();foreach(int a in A){ foreach(int b in b) { if (a==b) { c.add(a); } }}

说明:

是不是觉得上面这段虽然没什么问题,但是很丑陋。如果我们引用LINQ来编写呢:

IEnumerable C = from a in A from b in B where a==b select a;

语 法

  1. LINQ所处在的主要命名空间:System.Linq

  2. LINQ的处理的核心对象就是IEnumerable可枚举对象也包括了泛型枚举,换句话说当你要处理的对象为IEnumerable类型对象时即可使用LINQ操作它。且在没有经过其他处理的情况下将返回一个新的IEnumerable序列,注意LINQ有一个特性"延迟加载"这个将在后续说明。

3. 关键字(摘自MSDN):  

    from : 指定数据源和范围变量(类似于迭代变量)。

    where: 根据一个或多个由逻辑"与"和逻辑"或"运算符(&& 或 ||)分隔的布尔表达式筛选源元素。

    select: 指定当执行查询时返回的序列中的元素将具有的类型和形式。

    group: 按照指定的键值对查询结果进行分组。

    into: 提供一个标识符,它可以充当对 join、group 或 select 子句的结果的引用。

    orderby: 基于元素类型的默认比较器按升序或降序对查询结果进行排序。

    join: 基于两个指定匹配条件之间的相等比较来联接两个数据源。

    let: 引入一个用于存储查询表达式中的子表达式结果的范围变量。

    in: join 子句中的上下文关键字。

    on: join 子句中的上下文关键字。

    equals: join 子句中的上下文关键字。

    by: group 子句中的上下文关键字。

    ascending:orderby 子句中的上下文关键字。

    descending:orderby 子句中的上下文关键字。

  4. 语法说明,每个LINQ语句都以from作为开头,以select作为结束,这点和T-SQL语法不通的切记先入为主的思考。其他关键字如where则类似T-SQL作为筛选判断条件。

样例:IEnumerable nums = from n in nums where .... orderby... select....

扩 展

从 .net 3.0 开始 MS 就给我们引进了其他一些新的特性,由于篇幅关系在这里给大家简单的介绍几个LINQ常用到的特性:

  1. 关键字 var :

    指示编译器根据初始化语句右侧的表达式推断变量的类型。 推断类型可以是内置类型、匿名类型、用户定义类型或 .NET Framework 类库中定义的类型。这样我们就可以在上述的LINQ表达式中 例如可简写为: var nums = from n in nums where .... orderby... select....

  2. 匿名类型:  

    匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。 类型名由编译器生成,并且不能在源代码级使用。 每个属性的类型由编译器推断。例如:var obj = new {A="a", B="b"}; 而LINQ则可以为 var nums = from obj in objs select new {obj.A, obj.B}

案 例

普通查询

var query = from num in num select num.ProperyA

筛选查询

var query = from obj in objs where obj.ProperyA > Condition select obj

分组查询

var query = from obj in objs group obj by obj.PropertyA into g orderby g.Key select g;

注意,在此示例里,关键字 into 不是必须的,使用 into 时,必须继续编写该查询,并最终用一个 select 语句或另一个 group 子句结束该查询。

内联查询

var query= from obj1 in objs1 join obj2 in objs2 on obj1.ID equals obj2.ID select new { A= obj1.Property, B = obj2.Property };

左外联查询

var query = from obj1 in objs1 join obj2 in objs2 on obj1.ID equals obj2.Obj1ID into g from subpet in g.DefaultIfEmpty() select new { P1 = obj1.P1, P2 = (subpet == null ? null : subpet.P2 ) };

注意,此处涉及到.net 3.5 新特性静态扩展方法(后续介绍不影响理解)DefaultIfEmpty():如果序列为空,则返回一个具有默认值的单一实例集合

到此,相信大家对"LINQ入门知识点有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

类型 查询 关键 关键字 子句 上下 上下文 对象 表达式 变量 序列 特性 结果 知识 知识点 元素 数据 方法 编译器 语句 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 为想互联网科技怎么样 美国互联网保险保险科技 科技互联网公司装修 智能科技公司是互联网公司吗 金诺互联网科技 高科技与互联网 有马互联网科技 南山科技园互联网公司有哪些 花神(南京)互联网科技有限公司 宜昌元轩互联网科技有限公司 互联网新科技动漫ppt素材 翼展科技 首家互联网医院 小米互联网科技园入驻 江苏苏星互联网科技有限公司 互联网风格科技公司名称 神州科技互联网有限公司 国产互联网科技公司 悟空问答互联网科技 互联网科技创新创业项目 互联网科技公司起名 互联网核心科技是什么 金融科技创新监管互联网金融 互联网科技公司名称 丰台科技园 互联网公司 联恩商钥互联网科技有限公司 科技互联网的估值 互联网金融科技公司干啥的 健康食品互联网创新科技园项目 美国互联网科技公司
0