想实现linq动态排序 就是linq的order by 后跟动态的函数 可以用委托实现
但是发现 实现委托函数时候
int testSelector(post p)
26 {
27 ret urn p.Uu;
28 }
这个返回类型 受到了限制 仅是相同类型的字段可以动态排序
是不是
Func<post, TKey> selector 这个的实现 我理解的有问题 ?
public IEnumerable<post> Sort<TKey>(string userName, Func<post, TKey> selector)
{
return from post in posts
where post.UserName == userName
orderby selector(post) descending
select post;
}
这个函数的TKey 限制 只能是一种类型 ?有什么好的实现吗?
具体的代码
排序class
UI:
如果需要很高的动态性,就只能动态创建Expression了
连续使用多次OrderBy方法就能对多个字段排序了