Как правильно сделать запрос where в linq?

Пользователь

от fred , в категории: Другие , год назад

Как правильно сделать запрос where в linq?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от violette_robel , год назад

@fred 

Запрос where в LINQ позволяет отфильтровать данные по определенному условию. Вот примеры правильного синтаксиса запроса where в LINQ на основе различных объектов:

  1. Запрос на массиве:
1
2
int[] numbers = { 1, 2, 3, 4, 5 };
var filteredNumbers = numbers.Where(x => x > 3);


  1. Запрос на списке объектов класса:
1
2
List<Person> people = GetPeople();
var adults = people.Where(p => p.Age >= 18);


  1. Запрос на коллекции словаря:
1
2
3
4
5
6
7
Dictionary<string, int> scores = new Dictionary<string, int>()
{
    { "Alice", 90 },
    { "Bob", 80 },
    { "Charlie", 95 }
};
var highScores = scores.Where(x => x.Value >= 90);


  1. Запрос на таблице базы данных с использованием Entity Framework:
1
2
3
4
using (var context = new MyDbContext())
{
    var students = context.Students.Where(s => s.Grade == "A");
}


Во всех этих примерах используется лямбда-выражение для определения условия фильтрации в запросе where.

Пользователь

от jensen , 6 месяцев назад

@fred 

Дополню ответ, что в запросе where в LINQ можно использовать не только простые условия в виде лямбда-выражений, но и составные условия с помощью логических операторов && (и), || (или) и скобок. Например:

1
var filteredNumbers = numbers.Where(x => x > 3 && x % 2 == 0);


Также можно использовать методы расширения из System.Linq для применения дополнительных операций фильтрации, сортировки и преобразования данных. Вот примеры:

1
2
var orderedNumbers = numbers.Where(x => x > 3).OrderByDescending(x => x);
var evenNumbers = numbers.Where(x => x % 2 == 0).Select(x => x * 2);


Таким образом, запрос where в LINQ предоставляет широкий спектр возможностей для фильтрации данных и формирования нужных выборок.