c# List排序

list.Sort((s1, s2)=> s1.CompareTo(s2));

5.CompareTo(6) = -1 First int is smaller. 6.CompareTo(5) = 1 First int is larger. 5.CompareTo(5) = 0 Ints are equal.


orderList.Sort(delegate(Order p1,Order p2){int compareDate = p1.Date.CompareTo(p2.Date);if(compareDate ==0){return p2.OrderID.CompareTo(p1.OrderID);}return compareDate;});


his would give you ascending dates with descending orderIds. However, I wouldn't recommend sticking delegates as it will mean lots of places without code re-use. You should implement an IComparer and just pass that through to your Sort method. See here. public class MyOrderingClass : IComparer<Order> { public int Compare(Order x, Order y) { int compareDate = x.Date.CompareTo(y.Date); if (compareDate == 0) { return x.OrderID.CompareTo(y.OrderID); } return compareDate; } } And then to use this IComparer class, just instantiate it and pass it to your Sort method: IComparer<Order> comparer = new MyOrderingClass(); orderList.Sort(comparer);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值