为了账号安全,请及时绑定邮箱和手机立即绑定

IEnumerable <T> / IQueryable <T>上的动态LINQ OrderBy

IEnumerable <T> / IQueryable <T>上的动态LINQ OrderBy

C#
米脂 2019-05-25 15:18:47
IEnumerable <T> / IQueryable <T>上的动态LINQ OrderBy我在动态LINQ 的VS2008示例中找到了一个示例,它允许您使用类似sql的字符串(例如,OrderBy("Name, Age DESC"))用于排序。不幸的是,包含的方法仅适用于IQueryable<T>;。有没有办法获得此功能IEnumerable<T>?
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

我想使用反射来获得你想要排序的任何属性是有用的:

IEnumerable<T> myEnumerablesvar query=from enumerable in myenumerables          where some criteria          
orderby GetPropertyValue(enumerable,"SomeProperty")
          select enumerableprivate static object GetPropertyValue(object obj, string property){
    System.Reflection.PropertyInfo propertyInfo=obj.GetType().GetProperty(property);
    return propertyInfo.GetValue(obj, null);}

请注意,使用反射比直接访问属性要慢得多,因此必须调查性能。


查看完整回答
反对 回复 2019-05-25
  • 3 回答
  • 0 关注
  • 627 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信