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? Напишите мне, разберём ваш запрос по шагам.