可能是重复问题:
LINQ: 使用动态字符串参数进行排序
我正在使用 OrderBy() 子句对 IEnumarable 进行排序。我有一个包含我想要按其排序的字段值的字符串列表。现在,我正在为每个属性名称使用 switch 语句。
swich (propertyname)
case "name":
list = list.OrderBy(l=>l.name).ToList();
break;
case "property":
list = list.OrderBy(l=>l.property).ToList();
.....
有没有一种简单的解决方案可以在orderby子句中将字符串“propertyname”用作属性?
我已经尝试了一个解决方案,但它离理想状态还很远。不仅编写每个属性需要更多的工作量,而且如果在将来添加任何属性,则会忘记更新我正在编写的函数。
希望有人有更好的解决方案。