您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

C#-使用属性名称作为字符串按属性排序的代码

C#-使用属性名称作为字符串按属性排序的代码

我将提供其他所有人已发布内容的替代方法

System.Reflection.PropertyInfo prop = typeof(YourType).GetProperty("PropertyName");

query = query.OrderBy(x => prop.GetValue(x, null));

这样可以避免重复调用反射API以获取属性。现在唯一的重复调用就是获取值。

我主张使用a PropertyDescriptor代替,因为这将允许将customTypeDescriptor分配给您的类型,从而使轻量级操作可以检索属性和值。在缺少自定义描述符的情况下,无论如何它都会退回去反映。

PropertyDescriptor prop = TypeDescriptor.GetProperties(typeof(YourType)).Find("PropertyName");

query = query.OrderBy(x => prop.GetValue(x));

至于加快速度,请HyperDescriptor在CodeProject上查看Marc Gravel的项目。我已经成功地使用了它;它是针对业务对象进行高性能数据绑定和动态属性操作的救生器。

c# 2022/1/1 18:22:28 有757人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶