【发布时间】:2016-08-19 04:29:57
【问题描述】:
我有一个通用列表,我想按两个属性排序,优先级然后按描述来填充下拉列表。
我知道当我现在完全可以做对象列表的类型时
list = list.Orderby(x=>x.property1).ThenOrderBy(x=>x.property2).
我的问题是如何检查对象上是否存在 property1 和 property2,然后根据这些属性对我的列表进行排序。
【问题讨论】:
-
如果这些属性属于接口或类,您可以对 T 使用约束
-
编译器会为你做这件事。如果它们不存在,编译将失败。
-
你的意思是
List<dynamic>? -
是的,我的意思是列表
-
你无法在编译时知道。
dynamic将所有类型检查移至运行时。如果底层类型不具有这些属性,你会采取什么不同的做法?