Я начал немного играть с реализацией типа данных IQueryable <T> с помощью LINQ. Например, я сделал пару таких функций, как это (Это лишь временная деталь, метод расширения не для конкретной реализации IQueryable):Как применить функцию к экземпляру IQueryable?
public static IQueryable<T> Pow<T>(this IQueryable<T> values, T pow)
{
var e = BinaryExpression.Power(values.Expression, ConstantExpression.Constant(pow));
return values.Provider.CreateQuery<T>(e);
}
Тогда я понял, что это было бы полезно применить функцию для каждого элемента в объекте IQueryable, но я не могу понять, как построить правильное выражение. Подпись метода может выглядеть так:
public static IQueryable<T> Map<T>(this IQueryable<T> values, Expression<Func<T,T>> map)
{
Expression e = ...
return values.Provider.CreateQuery<T>(e);
}
Как я должен заполнить этот метод?
Как бы это отличалось от значений. Выберите (Карта)? –