Можешь показать пример использования LINQ для выполнения запросов к коллекции?
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
LINQ позволяет писать запросы к коллекциям в понятном и компактном виде. Обычно ожидают, что кандидат покажет фильтрацию, сортировку и проекцию данных. Важно также понимать, что LINQ можно использовать как в синтаксисе запросов, так и через методы-расширения.
Определение:
LINQ (Language Integrated Query) — это встроенный в C# способ выполнять запросы к коллекциям, массивам, спискам и другим источникам данных. Он позволяет отбирать нужные элементы, сортировать их, преобразовывать и группировать без ручных циклов. Чаще всего LINQ работает через цепочку методов или через SQL-подобный синтаксис.
Пример использования:
using System;
using System.Collections.Generic;
using System.Linq;
var employees = new List<Employee>
{
new Employee { Name = "Иван", Age = 28, Salary = 120000 },
new Employee { Name = "Анна", Age = 35, Salary = 150000 },
new Employee { Name = "Петр", Age = 24, Salary = 90000 },
new Employee { Name = "Ольга", Age = 31, Salary = 140000 }
};
var result = employees
.Where(e => e.Age >= 30)
.OrderByDescending(e => e.Salary)
.Select(e => new { e.Name, e.Salary });
foreach (var item in result)
{
Console.WriteLine($"{item.Name}: {item.Salary}");
}
class Employee
{
public string Name { get; set; }
public int Age { get; set; }
public int Salary { get; set; }
}
Пояснение кода:
Код не требует дополнительного механизма, кроме обычной коллекции List<Employee>.
- Создается список сотрудников.
Where(e => e.Age >= 30)оставляет только тех, кому 30 лет и больше.OrderByDescending(e => e.Salary)сортирует результат по зарплате по убыванию.Select(e => new { e.Name, e.Salary })выбирает только имя и зарплату, создавая анонимный объект.- В
foreachвыводятся отфильтрованные и отсортированные данные.
Ключевые моменты:
- LINQ делает запросы к коллекциям короче и читаемее, чем ручные циклы.
- Основные операции: фильтрация, сортировка, проекция, группировка, агрегация.
- Запросы LINQ обычно ленивые: выполнение происходит не сразу, а при перечислении результата.
- LINQ можно писать как через методы-расширения, так и через query syntax.
- Для собеседования важно уметь объяснить, что
Where,Select,OrderBy— это основные базовые операторы LINQ.