Sobes.tech
Back to questions
Junior — Middle
73

Какими способами ты использовал расширения в LINQ для добавления функциональности?

Companies where asked
AstonAston

Answer from AI

sobes.tech AI

В LINQ расширения обычно реализуются через методы расширения (extension methods) для интерфейсов IEnumerable<T> или IQueryable<T>. Это позволяет добавлять новые методы, которые выглядят как встроенные методы LINQ, расширяя функциональность без изменения исходного кода.

Например, можно создать метод расширения для фильтрации элементов по сложному условию:

public static class LinqExtensions
{
    public static IEnumerable<T> WhereIf<T>(this IEnumerable<T> source, bool condition, Func<T, bool> predicate)
    {
        if (condition)
            return source.Where(predicate);
        else
            return source;
    }
}

Использование:

var numbers = new List<int> {1, 2, 3, 4, 5};
bool filterEven = true;
var result = numbers.WhereIf(filterEven, n => n % 2 == 0);

Таким образом, расширения позволяют создавать удобные, переиспользуемые методы для LINQ-запросов.