我已经开始尝试实现 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);
}
我该如何完成这个方法体?
最佳答案
在我看来,您正在发明 Select .我看不出您的 Map 和 Select 已经做的有什么区别。它返回一个基于表达式和初始 IQueryable
对于类似 Reduce/Fold 的内容,请参阅 Queryable.Aggregate功能。
关于c# - 如何将函数应用于 IQueryable 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/541409/