在C#中对类的数组进行排序

时间:2011-05-30 11:00:36

标签: c#

在我的课程中,我有一个这样的课程:

Class Customer{

    double Start;
    double Finish;
    double Wait;
}

我创建了这个类的数组:

Customer[] customer = new Customer[300];

如何根据起始值Descending或Ascending对此数组进行排序?

谢谢...

6 个答案:

答案 0 :(得分:10)

您可以使用Array.Sort方法对数组进行就地排序:

Array.Sort(customer, (x, y) => x.Start.CompareTo(y.Start));

或按降序排列

Array.Sort(customer, (x, y) => y.Start.CompareTo(x.Start));

答案 1 :(得分:8)

如果您希望使用List Customer,则可以在数组上应用相同的功能:

List<Customer> customerList = new List<Customer>;
var orderedCustomerList = customerList.OrderBy(item => item.Start);

参考:

Enumerable.OrderBy Method

Enumerable.OrderByDescending Method

答案 2 :(得分:4)

Start升序排列:

var sortedCustomers = customer.OrderBy(c => c.Start);

Start降序排列:

var sortedCustomers = customer.OrderByDescending(c => c.Start);

答案 3 :(得分:1)

你需要使用icomparer,你需要在你的类中实现icomparer之后编写你的自定义代码

答案 4 :(得分:1)

您需要为您的Customer类实现IComparable。

http://msdn.microsoft.com/en-us/library/system.icomparable%28v=vs.80%29.aspx

答案 5 :(得分:1)