Как посчитать Sum и Count после фильтрации чисел?

После фильтрации остаются 2, 2 и 4: сумма равна 8, количество элементов — 3, количество разных значений — 2. Повторы не удаляются самим Where.

Короткий ответ

Что ответить на собеседовании

После фильтрации остаются 2, 2 и 4: сумма равна 8, количество элементов — 3, количество разных значений — 2. Повторы не удаляются самим Where.

Подробный разбор

Ответ с пояснениями

Условие

В C# задано int[] values = {1, 2, 2, 4, 5}; и var selected = values.Where(x => x % 2 == 0);. Источник после этого не изменяется. Чему равны selected.Sum(), selected.Count() и selected.Distinct().Count()?

Ответ

После фильтрации остаются 2, 2 и 4: сумма равна 8, количество элементов — 3, количество разных значений — 2. Повторы не удаляются самим Where.

Where проверяет каждый элемент и сохраняет оба вхождения двойки. Sum складывает значения, Count считает строки последовательности, а Distinct меняет набор перед подсчётом. Здесь повторное перечисление безопасно, потому что источник — неизменяемый в рамках задачи массив. Для одноразового потока или источника с побочными эффектами такой вывод о повторных проходах автоматически переносить нельзя.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее