Таким образом, методы расширения используются для добавления функциональности в класс без необходимости изменять его текущий код. Я читал, что операторы LINQ определяются таким образом.
Мой вопрос: когда мы знаем, что нам нужны операторы LINQ для каждого класса, реализующего IEnumerable, почему операторы LINQ не определяются непосредственно в интерфейсе IEnumerable? Зачем использовать методы расширения?
Спасибо.