今天在研究List<T> 集合如何排序,我试过很多,但是都不行,然后看到msdn中的这个比较器排序,自己测试了代码,No Problem.给大家分享一下。
类型 T 的默认比较器按如下方式确定。
如果类型 T 实现 IComparable<T> 泛型接口,则默认比较器为该接口的 CompareTo(T) 方法;
否则,如果类型 T 实现非泛型 IComparable 接口,则默认比较器为该接口的 CompareTo(Object) 方法。
如果类型 T 没有实现其中任一个接口,则不存在默认比较器,并且必须显式提供比较器或比较委托。
示例代码:
class GoodsInfoModelCompare : IComparer<AddModel.Add_GoodsInfoModel> { public int Compare(AddModel.Add_GoodsInfoModel a, AddModel.Add_GoodsInfoModel b) { return a.商品货号.CompareTo(b.商品货号); } }
直接对List<T>进行排序,Sort(实例化比较器),就可以进行排序了。
List<AddModel.Add_GoodsInfoModel> AddGoodsInfo = new List<AddModel.Add_GoodsInfoModel>(); AddGoodsInfo.Sort(new GoodsInfoModelCompare());