我已經開始玩一點了,實現一個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);
}
我該如何完成此方法正文?
這將如何不同於values.Select(map)? – 2009-02-12 14:30:29