如何动态指定排序字段

xuchicuit 2011-07-05 03:26:12
var souce=ataSouce.OrderByDescending(o => o.ID)

其中o.ID是不定的,还有很多字段,比如o.Name, o.Age等等,现在我能通过用户的操作得到想排序的字段
string dataOrderBy= "o.xx"; 其中xx动态获得,我想要达得以下面这种突起果:

var souce=ataSouce.OrderByDescending(o => dataOrderBy)

应该如何实现呢?

PS:类似于需要C中的宏替换功能,但C#中没有,希望得到好的变通方法,谢谢。
...全文
148 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuchicuit 2011-07-05
  • 打赏
  • 举报
回复
反射还可以这么用,太谢谢了,学习了
q107770540 2011-07-05
  • 打赏
  • 举报
回复
对于多个 字段同时排序
可以使用 .OrderBy()结合 .ThenBy()来实现
q107770540 2011-07-05
  • 打赏
  • 举报
回复

string dataOrderBy= "o.xx";

var souce=ataSouce.OrderByDescending(o => GetPropertyValue(o,dataOrderBy));

private static object GetPropertyValue(object obj, string property)
{
System.Reflection.PropertyInfo propertyInfo=obj.GetType().GetProperty(property);
return propertyInfo.GetValue(obj, null);
}


http://blog.csdn.net/q107770540/article/details/6133484
q107770540 2011-07-05
  • 打赏
  • 举报
回复
C# 中有 反射 啊

8,492

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧