【发布时间】:2018-05-25 22:01:34
【问题描述】:
public class SortExample
{
public int IntField {get; set;}
public string StringField {get; set;}
public DateTime DateField {get; set;}
}
这个类被设置为列表视图的源,下面函数中传递的 sortExpression 参数是属性名称,排序顺序为 'IntField ASC' 'IntField DESC' 'StringField ASC' 'StringField DESC'
public void SortExampleMethod(string sortExpression)
{
List<SortExample> list = new List<SortExample>();
list.OrderBy(sortExpression);
}
实现这一点的唯一方法是为每个属性编写一个比较器,或者 LINQ 中的某些东西可以轻松完成吗?
【问题讨论】:
-
'IntField ASC' 'IntField DESC'?它是如何工作的?
-
该代码甚至无法编译。
-
您可以为任何属性动态构建表达式。
-
我想你正在寻找类似
list.OrderBy(x=>x.IntField).ThenByDescending(x=>x.StringField)的东西,但你的问题太糟糕了,很难猜出你想要什么。