如何根据特定列对对象列表进行排序(排序)

时间:2013-01-15 14:25:53

标签: c# asp.net linq sorting gridview

如何根据特定字段(sort expression)和方向(sort direction)对对象列表进行排序..

例如:

TransactionList.ToList<UserTransactionDTO>()

3 个答案:

答案 0 :(得分:4)

假设您的列表是自定义类型的列表,并且您希望按一个或多个属性进行排序:

var trans = transactions.OrderBy(t => t.PropertyName)
                        .ThenBy(t => t.DifferentPropertyName)

如果您想订购降序:

var trans = transactions.OrderByDescending(t => t.PropertyName)
                        .ThenByDescending(t => t.DifferentPropertyName)

Enumerable.OrderBy Method

答案 1 :(得分:1)

public class Person
{
    public String Name { get; set; }
    public int Age { get; set; }
}

var people = new List<Person>(); //Fill it
var sorted = people.OrderBy(p => p.Name).ThenBy(p => p.Age);

否则使用OrderByDescending();

希望这有帮助!

答案 2 :(得分:1)

如果您想使用复杂的排序,也可以使用IComparer<T>

请参阅:How sort a System.Collections.Generic.List in VB.Net?