我有一些方法:轉換表達<Func鍵<TModel的,IList的<TItem> >>以表達<Func鍵<TModel的,IEnumerable的>>
public void Foo(Expression<Func<TModel, IEnumerable>> expression) {
// foo
}
,我有變量:
Expression<Func<TModel, IList<TItem>>> expression;
我如何可以將我的變量傳遞給Foo
?
我有一些方法:轉換表達<Func鍵<TModel的,IList的<TItem> >>以表達<Func鍵<TModel的,IEnumerable的>>
public void Foo(Expression<Func<TModel, IEnumerable>> expression) {
// foo
}
,我有變量:
Expression<Func<TModel, IList<TItem>>> expression;
我如何可以將我的變量傳遞給Foo
?
使用此:
public Expression<Func<TModel, IEnumerable>> ConvertExpression<TModel, TItem>(Expression<Func<TModel, IList<TItem>>> expression)
{
return (Expression<Func<TModel, IEnumerable>>)Expression
.Lambda(Expression.Convert(expression.Body, typeof(IEnumerable)), expression.Parameters);
}
有** **很多努力。看到我自己的問題[這裏](http://stackoverflow.com/q/2797261/50079);閱讀至少[我的答案](http://stackoverflow.com/a/10467736/50079)(因爲接受的答案不回答你的問題的最重要部分)*和*評論。我不會把它標記爲一個愚蠢的東西,而是讓你決定。 – Jon