C# ASP.NET MVC 4中的多排序
如何对多个列进行排序?我尝试使用以下表达式:C# ASP.NET MVC 4中的多排序,c#,entity-framework,sorting,asp.net-mvc-4,C#,Entity Framework,Sorting,Asp.net Mvc 4,如何对多个列进行排序?我尝试使用以下表达式: if (name != null) { if (name.Equals(SortEnum.ASC)) { employees = employees.OrderBy(e => e.Name); } else if (name.Equals(SortEnum.DESC)) { employees = employees.OrderByDescending(e => e.
if (name != null)
{
if (name.Equals(SortEnum.ASC))
{
employees = employees.OrderBy(e => e.Name);
}
else if (name.Equals(SortEnum.DESC))
{
employees = employees.OrderByDescending(e => e.Name);
}
}
if (surname != null)
{
if (surname.Equals(SortEnum.ASC))
{
employees = employees.OrderBy(e => e.Surname);
}
else if (surname.Equals(SortEnum.DESC))
{
employees = employees.OrderByDescending(e => e.Surname);
}
}
但只有最后一列被排序。在某个地方我看到了方法ThenBy()
,但我没有它。
请帮助。使用
System.Linq.Dynamic
List<string> orderstr = new List<string>();
orderstr.Add((name != null)? name.Equals(SortEnum.ASC)? "Name ASC": "Name DESC" : string.Empty);
orderstr.Add((surname != null)? surname.Equals(SortEnum.ASC)? "Surname ASC": "Surname DESC" : string.Empty);
var reslt = employees.OrderBy(string.Join(", ",orderstr.Where(x=>!string.IsNullOrEmpty(x))));
List orderstr=new List();
orderstr.Add((name!=null)?name.Equals(SortEnum.ASC)?“name ASC”:“name DESC”:string.Empty);
orderstr.Add((姓氏!=null)?姓氏等于(SortEnum.ASC)?“姓氏ASC”:“姓氏描述”:string.Empty);
var reslt=employees.OrderBy(string.Join(“,”,orderstr.Where(x=>!string.IsNullOrEmpty(x));
您不能在OrderBy
之后使用ThenBy()
?这很奇怪。真的很奇怪,这应该可以工作employees.OrderBy(e=>e.Name)。然后是by(e=>e.姓氏)
或employees.OrderByDescending(e=>e.Name),然后ByDescending(e=>e.姓氏)代码>确实可以,但只能在方法OrderBy之后。在我的例子中,我不能使用它。你的意思是说你需要检查name
和name
保持什么方向,然后使用适当的顺序?@Nilesh是的,我是认真的。