首页 > 代码库 > LINQ查询基础

LINQ查询基础

一、什么是LINQ

      LINQ是Language Integrate Query的缩写,意为语言集成查询,是微软在.Net Framework 4.5版中推出的主要特性之一。

      它为开发人员提供了统一的数据查询模式,并与.Net开发语言(如C#和VB.Net)集成,很大程度上简化了数据查询的编码和调试工作,提供了数据查询的性能。

      LINQ中查询表达式访问的是一个对象,而该对象可以表示为各种类型的数据源。比如SQL Server数据库,XML文档,ADO.NET数据集,以及内存中的数据集合等。

      在.NET类库中,LINQ相关类库都在System.Linq命名空间中,该命名空间提供支持使用LINQ进行查询的类和接口,其中主要是以下两个接口和两个类:

      IEnumerable<T>接口:它表示可以查询的数据集合,一个查询通常是逐个对集合对象中的元素进行筛选操作,返回一个新的IEnumerable<T>对象,用来保存查询结果。

      IQueryable<T>接口:它继承自IEnumerable<T>接口,表示一个可以查询的表达式目录树。

      Enumerable类:它通过对IEnumerable<T>提供扩展方法,实现LINQ标准查询运算。包括过滤、导航、排序、关联、求和、求最大值、求最小值等操作。

      Queryable类:它通过对IQueryable<T>提供扩展方法,实现LINQ标准查询运算。包括过滤、导航、排序、关联、求和、求最大值、求最小值等操作。

     根据数据源类型,可以将LINQ技术分为以下几个主要技术方向:

      1.LINQ to Object:数据源为实现了接口IEnumerable<T>和IQueryable<T>的内存数据集合,这也是LINQ的基础,本文将介绍着方面的内容。

      2.LINQ to ADO.NET:数据源为ADO.NET数据集,这里将数据库中的表结构映射到类结构,并通过ADO.NET从数据库中获取数据集到内存,通过LINQ进行数据查询。

      3.LINQ to XML:数据源为XML文档,这里通过XElement、XAttribute等类将XML文档数据加载到内存中,通过LINQ进行数据查询。

二、LINQ查询表达式

      在进行LINQ查询的编写之前,首先要了解查询表达式。查询表达式是LINQ查询的基础,也是最常用的编写LINQ查询的方法。查询表达式由查询关键字和对应的操作数组成。其中,查询关键字是常用的查询运算符。

      在C# 3.0中可以直接使用的查询关键字和功能如下表:

技术分享

        

 

 

 

 

 

 

 

     

     1.用from子句指定数据源

        每个LINQ查询表达式都以from子句开始,from子句包括以下两个功能。

        (1)指定查询将采用的数据源

        (2)定义一个本地变量,表示数据源中单个数据

      单个from子句的编写格式如下,其中,dataSource表示数据源,localVar表示单个元素:

        from localVar in dataSource

       示例代码如下:

            int[] array = { 1, 2, 4, 5, 7 };            var query = from item in array 
select item; foreach (var item in query) { Console.WriteLine(item); }

 

LINQ查询基础