Предложение where
Предложение where оставляет элементы, для которых условие истинно. Оно соответствует методу Where; исходный список не меняется.
Синтаксис
var res = from x in source
where x > 2
select x;
Пример
Давайте оставим числа больше 2:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
var res = from n in nums
where n > 2
select n;
Console.WriteLine(string.Join(" ", res.ToList()));
}
}
Результат выполнения кода:
"3 4 5"
Пример
Давайте убедимся, что исходный список не изменился:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
var res = from n in nums where n > 2 select n;
res.ToList();
Console.WriteLine(nums.Count);
}
}
Результат выполнения кода:
5
Пример
Давайте отфильтруем чётные:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
var res = from n in nums
where n % 2 == 0
select n;
Console.WriteLine(string.Join(" ", res));
}
}
Результат выполнения кода:
"2 4"