使用OrderBy和ThenBy进行聚合

时间:2015-06-25 21:46:11

标签: linq c#-4.0

我有一个列表,其中的元素遵循序列。我想在OrderBy和ThenBy

中使用聚合
List<string> list = new List<string> {"codCustomer", "customerName", "address1", "address2"};

list = list
    .OrderBy(o => o.codCustomer)
    .ThenBy(o => o.customerName)
    .ThenBy(o => o.address1)
    .ThenBy(o => o.addres2)

这个列表包含很多元素,我想在OrderBy和ThenBy中使用聚合,但我不知道它是怎么做的。

问题是这个列表作为参数传递,并包含要排序的字段。

1 个答案:

答案 0 :(得分:0)

您应该使用属性Code,Name,Address1和Address2定义名为Customer的类,并创建客户对象列表,而不是字符串列表。然后,您可以按照描述的方式订购客户列表。

class Customer 
{
   public string Code { get; set; }
   public string Name { get; set; }
   public string Address1 { get; set; }
   public string Address2 { get; set; }
}
...
// at some point
List<Customer> customers = new List<Customer>();
customers.Add(new Customer()
{
   Code = "cod1",
   Name = "nam1",
   Address1 = "ad1",
   Address2 = "ad2"
};
// ... more customers
// you order customers the way you need
List<Customer> orderedCustomers = customers.OrderBy(p => p.Code).ThenBy(p => p.Name).ToList(); // you can continue ordering by all the properties if you want.