【发布时间】:2015-10-31 18:46:45
【问题描述】:
假设我有这个进程列表或任何其他对象
List<Process> listProcess = new List<Process>();
我可以使用这条线对其进行排序listProcess.OrderBy(p => p.Id);
但是,如果我只有在运行时获得的属性的字符串名称怎么办。我假设,我应该使用反射来获取属性对象。我可以使用 orderby 方法还是应该使用 Sort 然后传递自己的比较器?
【问题讨论】:
-
您也可以使用带有名称的 OrderBy。您的问题到底是什么?
-
使用反射也许.. 但是@DavidG 建议的副本很好地解决了您的问题。
-
@ArghyaC:嗯,你怎么能使用带有属性名称的 OrderBy 呢? (除了反射......)
-
@JonSkeet 哦哦!我的错!我认为 OP 有
string属性“名称”的值!是的,反思就是答案。list.OrderBy(o => o.GetType().GetProperty(propName).GetValue(o))
标签: c# sorting reflection compare