首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C# 中的IComparable和IComparer

IComparer接口 IComparable 接口的CompareTo方法一次只能对一个字段进行排序,因此无法对不同的属性进行排序。...IComparer接口提供了Compare方法,该方法比较两个对象并返回一个值,该值指示一个对象小于,等于或大于另一个对象。实现IComparer接口的类必须提供比较两个对象的Compare方法。...例如,您可以创建一个StudentComparer类,该类实现IComparer,并具有一个Compare方法,该方法按Name比较Student对象。...示例 class StudentComparer : IComparer { public int Compare(object x, object y)...IComparable和IComparer 上述示例中我们将对象进行了多次的装箱和拆箱,那么此时我们可以将方法改为泛型的,泛型的出现也让我们避免了装箱和拆箱的资源浪费.

69620
您找到你想要的搜索结果了吗?
是的
没有找到

对List.Sort的简单研究

现在没有用过,看了下Sort方法,参数是IComparer comparer,郁闷,先前一直没接触过,所以在家慢慢研究了一下,发觉很神奇,这里简单介绍下,希望大家也能帮我解答一下。...this.userName = userName; this.addTime = addTime; } } 好,我现在要按照时间来倒序 因为第一次用IComparer...接口,所以做的简单点 写一个类,继承IComparer接口,实现Compare方法 public class MyClassComparer : IComparer {...IComparer 成员 } 测试一下: class Program { static void Main(string[] args)...Console.ReadLine(); } } 测试成功,不过一开始我在MyClasComparer.Comparer方法里没有设定等于,所以排序的时候会提示错误,而且排序的时候也不正确,看了IComparer

613100

基于业务对象(列表)的排序

public interface IComparer { int Compare(T x, T y); } IComparer只需要实现一个方法,Compare()它接受两个同一类型的参数...实现 IComparer接口 打开Order.cs文件,对它进行如下修改,先添加一个枚举SortDirection,用于表示排序的方向: // 可复用的枚举,表示排序的方向 public enum...的类OrderComparer: // 嵌套类,仅对于此业务对象进行排序 public class OrderComparer : IComparer { } 现在考虑如何实现它...有了思路,我们现在实现IComparer接口,编写方法 // 实现 IComparer接口 public int Compare(Order x, Order y) { int result...接着,我们详细地讨论了如何通过实现一个IComparer接口,来实现可以对任意单个属性以及多个属性组合的排序。

1.9K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券