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);}
请注意,使用反射比直接访问属性要慢得多,因此必须调查性能。
- 3 回答
- 0 关注
- 627 浏览
添加回答
举报
0/150
提交
取消