📜  linq 查询两个条件 (1)

📅  最后修改于: 2023-12-03 15:32:39.582000             🧑  作者: Mango

使用 LINQ 查询两个条件

LINQ(语言集成查询)是 .NET 框架的一部分,旨在使数据查询变得更加简单和快速。它提供了一种可以与不同类型的数据源交互的统一编程模型。LINQ 使得使用 .NET 语言进行一般化查询变得非常容易,可以查询对象集合、数据库、XML 文档和其他数据源。

在本文中,我们将探讨使用 LINQ 查询两个条件的方法。我们将使用 C# 作为编程语言,展示如何从集合中筛选出满足两个或多个条件的元素。

LINQ 查询语法

LINQ 提供了两种查询语法:方法语法和查询表达式语法。方法语法使用扩展方法,可以很清楚地传达查询功能,但是难以阅读,对于复杂的查询来说很难维护。查询表达式语法更符合人类思维习惯,可以写出更具可读性和可维护性的代码。

以下是 LINQ 查询表达式语法的一般形式:

from element in collection
where condition1 && condition2
select element

其中 element 指集合中的元素,collection 是要查询的集合,condition1condition2 是要应用的筛选条件。&& 表示“和”关系,表示两个条件都必须为 true 才能满足筛选要求。

以下是一个简单的例子:

string[] names = {"Alice", "Bob", "Charlie", "David"};

var results = from name in names
              where name.Length > 4 && name.Contains("a")
              select name;

这个查询将筛选出 names 数组中长度大于 4 并包含字母 a 的字符串。筛选结果将以字符串数组的形式返回。

LINQ 查询两个条件

执行包含多个条件的 LINQ 查询与执行单个条件的查询非常相似。唯一的区别在于,在 where 子句中指定多个条件。以下示例演示了如何查询一个整数集合中满足两个条件的元素。

int[] numbers = {10, 20, 30, 40, 50, 60};

var results = from num in numbers
              where num > 30 && num % 10 == 0
              select num;

这个查询将从 numbers 中选取大于 30 且能被 10 整除的整数。输出结果为:

40
50
60
方法语法

以上代码使用了查询表达式语法,您也可以使用扩展方法语法执行 LINQ 查询。以下是等效的代码:

var results = numbers.Where(num => num > 30 && num % 10 == 0);

这里使用的是 Where 扩展方法,它接受一个返回值为布尔值的函数(即一个筛选器函数),并返回一个包含满足条件的元素的 IEnumerable

结论

在此文章中,我们讨论了使用 LINQ 查询两个条件的方法。我们还介绍了 LINQ 的查询语法和扩展方法语法。使用 LINQ 提高了代码的可读性和可维护性,也使得处理数据的任务变得更加简单和快速。