К содержимому
Разобраться → Понять → Сделать
Меню

← Все статьи

LINQ в C# простыми словами

LINQ позволяет задавать вопросы к коллекции вместо того, чтобы писать цикл. Три метода покрывают большую часть задач: Where отбирает нужные элементы, Select превращает каждый элемент во что-то другое (например, берёт из студента только имя), а GroupBy раскладывает элементы по группам.

var names = students
    .Where(s => s.Grade >= 7)
    .Select(s => s.Name)
    .ToList();

Читается почти как обычное предложение: «из студентов возьми тех, у кого оценка не меньше 7, и достань их имена». Группировка работает так же просто:

var byGroup = students
    .GroupBy(s => s.Group)
    .Select(g => new { Group = g.Key, Count = g.Count() });

Важная особенность: запрос выполняется не сразу, а в тот момент, когда вы начинаете получать результат (ToList(), foreach и подобное). Поэтому, если пройти по одному и тому же запросу дважды, он выполнится дважды. Если результат нужен несколько раз, сохраните его через ToList().

Застряли на своём задании с LINQ? Напишите мне, разберём ваш запрос по шагам.