猿教程 Logo

LINQ查询语法

阿里云服务器,每月低至7.8元,项目演示即建站必备,比腾讯云更便宜,并且不需学生认证,从此链接购买有效:去购买

有两种基本方法可以将LINQ查询写入IEnumerable集合或IQueryable数据源。

  1. 查询语法或查询表达式语法
  2. 方法语法或方法扩展语法或Fluent

查询语法:

查询语法与数据库的SQL(结构化查询语言)类似。 它是在C#或VB代码中定义的。

LINQ语法:

from <range variable> in <IEnumerable<T> or IQueryable<T> Collection>

<Standard Query Operators> <lambda expression>

<select or groupBy operator> <result formation>

LINQ查询语法以from关键字开始,以select关键字结束。 以下是一个示例LINQ查询,返回包含单词“Tutorials”的字符串集合。

相关实例:

// string collection
IList<string> stringList = new List<string>() { 
    "C# Tutorials",
    "VB.NET Tutorials",
    "Learn C++",
    "MVC Tutorials" ,
    "Java" 
};

// LINQ Query Syntax
var result = from s in stringList
            where s.Contains("Tutorials") 
            select s;

下图显示了LINQ查询语法的结构。


查询语法从一个From子句开始,然后是一个Range变量。 From子句的结构类似于“From rangeVariableName in IEnumerablecollection”。 在英语中,这意味着,从集合中的每个对象。 它类似于foreach循环:foreach(student in studentList)。

在From子句之后,您可以使用不同的标准查询运算符来过滤,分组,连接集合的元素。 LINQ中有大约50个标准查询运算符。 在上图中,我们使用“where”运算符后跟一个条件。 这个条件通常使用lambda表达式来表示。

LINQ查询语法总是以Select或Group子句结束。 Select子句用于对数据进行整形。 您可以选择整个对象,因为它是或只有它的一些属性。 在上面的例子中,我们选择了每个结果字符串元素。

在下面的示例中,我们使用LINQ查询语法从学生集合(序列)中找出青少年学生。

相关实例:

// Student collection
IList<Student> studentList = new List<Student>>() { 
        new Student() { StudentID = 1, StudentName = "John", Age = 13} ,
        new Student() { StudentID = 2, StudentName = "Moin",  Age = 21 } ,
        new Student() { StudentID = 3, StudentName = "Bill",  Age = 18 } ,
        new Student() { StudentID = 4, StudentName = "Ram" , Age = 20} ,
        new Student() { StudentID = 5, StudentName = "Ron" , Age = 15 } 
    };

// LINQ Query Syntax to find out teenager students
var teenAgerStudent = from s in studentList
                      where s.Age > 12 && s.Age < 20
                      select s;

相关实例:

// Student collection
Dim studentList = New List(Of Student) From {
        New Student() With {.StudentID = 1, .StudentName = "John", .Age = 13},
        New Student() With {.StudentID = 2, .StudentName = "Moin", .Age = 21},
        New Student() With {.StudentID = 3, .StudentName = "Bill", .Age = 18},
        New Student() With {.StudentID = 4, .StudentName = "Ram", .Age = 20},
        New Student() With {.StudentID = 5, .StudentName = "Ron", .Age = 15}
    }

// LINQ Query Syntax to find out teenager students
Dim teenAgerStudents As IList(Of Student) = (From s In studentList _
                                            Where s.Age > 12 And s.Age < 20 _
                                            Select s).ToList()

我们将在下一节了解Linq方法语法。

要点
  1. 顾名思义,查询语法与SQL(结构查询语言)语法相同。

  2.  查询语法以from子句开头,可以以Select或GroupBy子句结束。 

  3. 使用各种其他操作,如过滤,连接,分组,排序运算符以构造所需的结果。 

  4. 隐式类型变量 - var可以用于保存LINQ查询的结果。

阿里云服务器,每月低至7.8元,项目演示即建站必备,比腾讯云更便宜,并且不需学生认证,从此链接购买有效: 去购买


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Linq/linq-query-syntax.html