LINQ 语法

17 Mar 2025 | 4 分钟阅读

在进入 LINQ 查询语法之前,我们将讨论一些与 LINQ 语法相关的基本术语

编写 LINQ 查询的要求

要编写 LINQ 查询,我们需要以下三件事

  1. 数据源(内存中的对象、SQL、XML)
  2. 查询
  3. 查询的执行

什么是查询?

查询只不过是一组指令。 查询应用于数据源(即内存中的对象、SQL、XML 等)以执行操作(即 CRUD 操作)并显示该查询的输出形状。 这意味着查询不负责输出是什么;相反,它负责输出的形状。

每个查询由三部分组成; 它们是

  1. 初始化(用于处理特定数据源)
  2. 条件(where、filter、sorting condition)
  3. 选择 (单个选择、组选择或连接)

LINQ 是“语言集成查询”的首字母缩写。 主要特征是允许用户使用查询语法以 SQL 查询的风格在代码中编写查询。

.NET 框架在 LINQ 中提供了一组内置的查询关键字,以允许用户编写 SQL 风格的查询。

LINQ 有三种编写查询的方式

  • 使用查询语法
  • 使用方法语法
  • 使用混合语法

LINQ 查询语法

LINQ 是以可访问和可读的格式编写复杂 LINQ 查询的最简单方法之一。 这种类型的查询的语法与 SQL 查询非常相似。

LINQ 的语法是

LINQ Syntax

在 LINQ 中,我们通过遵循某些规则来编写 LINQ 查询。 语法与 SQL 不同。 为了在 LINQ 中编写查询,需要遵循语法层次结构,例如

我们在 LINQ 中编写查询时将遵循此顺序。 LINQ 的起点将从 "from" 关键字开始,后跟一个 用户定义的变量,后跟 指定集合源或数据的引用的 in,然后是 where 子句。 如果有一个特定的查询可以在选择之前使用以过滤 记录,然后是 select,然后是 group by into 子句。

LINQ 查询中子句的顺序将如下所示

子句描述
From[Identifier]
In[源集合]
[表达式]
其中[布尔表达式]
order by[表达式]
选择[表达式]
group by[表达式]
into[表达式]

C# 中 LINQ 查询的代码片段

C# 中的 LINQ 查询语法

现在我们将通过以下示例了解如何使用 LINQ 查询语法

示例: 我们有一个整数列表,我们需要编写一个 LINQ 查询,该查询将返回所有大于 5 的整数。 这里我们将创建一个控制台应用程序。

使用查询语法的示例

现在我们将运行该应用程序,它将显示值 6、7、8、9、10,如下面的控制台窗口输出所示。

输出

LINQ Syntax
LINQ Syntax

LINQ 方法语法

方法语法现在变得越来越流行,用于编写 LINQ 查询。 它使用 lambda 表达式来定义查询的条件。 方法语法很容易编写简单的查询以对特定数据源执行读写操作。 对于复杂的查询,与查询语法相比,方法语法有点难。

在这种方法中,LINQ 查询是通过使用多个方法并用点 (.) 将它们组合在一起来编写的。

对于这种方法,语法是

LINQ Syntax

现在我们将通过使用 LINQ 方法语法来重写相同的示例

输出

LINQ Syntax

LINQ 混合语法

LINQ 混合语法是 查询方法语法 的组合。

LINQ Syntax

示例: 现在,我们正在更改要求。 首先,我们需要过滤值大于 5 的列表,然后我们需要计算总和。

现在我们运行该应用程序,它将显示总和为 40,如下面的控制台窗口输出所示。

输出

LINQ Syntax