📜  where in linq (1)

📅  最后修改于: 2023-12-03 14:48:27.077000             🧑  作者: Mango

LINQ 中的 Where

在 LINQ 中,Where 方法用于筛选出序列中符合特定条件的元素,并返回一个包含这些元素的新序列。

使用语法

下面是 Where 方法的使用语法:

public static IEnumerable<TSource> Where<TSource>(
    this IEnumerable<TSource> source,
    Func<TSource, bool> predicate
)
  • source:要筛选的序列。
  • predicate:用于对每个元素进行测试的函数。
示例

假设有一个整型数组,我们要筛选出其中所有的偶数。可以使用 Where 方法来实现:

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var evenNumbers = numbers.Where(n => n % 2 == 0);

foreach (var number in evenNumbers)
{
    Console.WriteLine(number);
}

输出:

2
4
6
8
10

在上面的示例中,我们使用 lambda 表达式作为 Where 方法的参数来指定筛选条件。lambda 表达式 n => n % 2 == 0 表示筛选出所有能被 2 整除的数。

多重筛选

可以使用多个 Where 方法来对序列进行多重筛选。例如,如果我们要筛选出数组中所有的偶数且大于 5 的数,可以按如下方式实现:

var evenNumbersGreaterThanFive = numbers.Where(n => n % 2 == 0).Where(n => n > 5);

foreach (var number in evenNumbersGreaterThanFive)
{
    Console.WriteLine(number);
}

输出:

6
8
10
总结

Where 方法是 LINQ 中常用的一个方法,它可以用于对序列进行筛选,并返回符合条件的元素组成的新序列。除了单一条件的筛选,还可以使用多个 Where 方法对序列进行多重筛选。