【发布时间】:2017-04-12 12:06:11
【问题描述】:
我有一个采用IQueryable<T> 的方法,我想在其中通用地实现OrderBy。理想情况下,通过传入c => c.SomeProperty 作为参数,但我不知道如何让泛型工作,所以我用字符串尝试了它。但是我得到了错误:
Incorrect number of parameters supplied for lambda declaration
这是我尝试过的(使用字符串方法)
var sortSelectorParameter = Expression.Parameter(typeof(T), "c");
var sortSelector = Expression.PropertyOrField(sortSelectorParameter, "ClientId"); // ClientId is the property string
collection = collection.OrderByDescending(Expression.Lambda<Func<T, bool>>(sortSelector));
我很困惑,因为 OrderBy 只接受一个参数 - 有什么建议吗?
【问题讨论】:
标签: c# generics expression-trees