常用接口简析2---IComparable和IComparer接口的简析
常用接口的解析(链接)
1.IEnumerable深入解析
2.IEnumerable、IEnumerator接口解析
3.IList、IList接口解析
默认情况下,对象的Equals(object o)方法是比较两个对象是否引用同一个对象。如果我们有自己的对象,就要自己定义对象比较方式:
1.IComparable在要比较的对象(类的实例化就是对象)类中实现,可以比较该对象和另一个对象。
2.IComparer在一个单独的类中实现,可以任意比较两个对象。
通俗的讲,IComparable是能够比较,具备比较的能力。比如说某个人具备编程的能力,如果需要对编程能力的高低进行比较的话,就必须在自己的类中去实现怎么具体的方法。IComparer是比较者,属于第三者,它用来对其他对象进行比较,它只是个中间第三方。
1.IComparable提供了一个方法int CompareTo(object obj)这个方法可接受一个对象,实现这个方法可进行比较。
比较Person的年轻:
if(person1.CompareTo(person2) == )
{
Console.WriteLine("Same age");
}
else if(person1.CompareTo(person2) > )
{
Console.WriteLine("person 1 is older");
}
else
{
Console.WriteLine("person1 is younger");
}
2.IComparer提供了一个方法Compare,这个方法接受两个对象
if(personComparer.Compare(person1,person2) == )
{
Console.WriteLine("same age");
}
else if(personComparer.Compare(person1,person2) > )
{
Console.WriteLine("person 1 is older");
}
else
{
Console.WriteLine("person1 is younger");
}
常用接口简析2---IComparable和IComparer接口的简析的更多相关文章
- [0] 关于IComparable和IComparer接口和Comparer类
关于IComparable和IComparer接口 和 Comparer类 IComparable和ICompareframeworkr接口是.net 中比较对象的标准方式,这两个接口之间的区别如下: ...
- 对象的比较与排序:IComparable和IComparer接口
IComparable和ICompare 接口是.net framework 中比较对象的标准方式,这两个接口提供一个返回值类似(大于0 等于0 小于0)的比较方法,二者区别如下: . ICompar ...
- c# 实现IComparable、IComparer接口、Comparer类的详解
在默认情况下,对象的Equals(object o)方法(基类Object提供),是比较两个对象变量是否引用同一对象.我们要必须我自己的对象,必须自己定义对象比较方式.IComparable和ICom ...
- 数组自定义排序:IComparable和IComparer接口
首先先说一下IComparable和IComparer的区别,前者必须在实体类中实现,后者可以单独出现在一个排序类中,即此类只包含一个compare方法. Array类使用快速算法对数组中的元素进行排 ...
- IComparable和IComparer接口
C#中,自定义类型,支持比较和排序,需要实现IComparable接口.IComparable接口存在一个名为CompareTo()的方法,接收类型为object的参数表示被比较对象,返回整型值:1表 ...
- C#的 IComparable 和 IComparer接口及ComparableTo方法的 区别(非常重要)
(1)https://blog.csdn.net/ios99999/article/details/77800819 C# IComparable 和 IComparer 区别 (2)https:// ...
- C#中的IComparable 和 IComparer 接口,实现列表中的对象比较和排序
借豆瓣某博主的话先对这两个接口进行一个解释: IComparable在要比较的对象的类中实现,可以比较该对象和另一个对象 IComparer在一个单独的类中实现,可以比较任意两个对象. 如果已经支持 ...
- 实现IComparable、IComparer接口
using System;using System.Collections.Generic; public class MyClass{ public class Employee:IComparab ...
- c# IComparable与IComparer接口
- C# 常用接口学习 IComparable 和 IComparer
C# 常用接口学习 IComparable 和 IComparer 作者:乌龙哈里 时间:2015-11-01 平台:Window7 64bit,Visual Studio Community 201 ...
随机推荐
- Java设计模式(四)——再谈观察者模式
在本系列的上一篇文章中,我们讨论了JDK对于观察者模式的一套实现.今天我们将要从另一个角度来探索Tomcat中是如何利用观察者模式加载各个组件.不过今天的任务不是解释Tomcat,所以我会单独把重点抽 ...
- WPF ListBox 一些小知识点
页面代码: <Grid Grid.Row="0" Grid.Column="2"> <ListBox x:Name="lvStep& ...
- excel中添加拼接行
Sub 万途标签()Dim iFor i = 1 To Sheets.Count If Sheets(i).Name = "数据表" Then If MsgBo ...
- mybatis 的mapper配置文件sql语句中, 有时用到 大于, 小于等等
一, 用<![CDATA[ ]]>标识,例如: <if test="create_timeStart != null and create_timeStart != ' ...
- 【20171025早】alert(1) to win 练习
本人黑绝楼,自称老黑,男,25岁,曾经在BAT工作过两年,但是一直都是底层人员,整天做重复性工作,甚敢无趣,曾和工作十年之久的同事聊天,发现对方回首过往,生活是寡淡如水,只有机械性工作.旋即老黑毅然决 ...
- python中openpyxl的用法【安装,以及一些基本的操作】
概述 Openpyxl是python中简单易用的操作excel电子表格的一个模块.接下来呢,跟博主一起学习一下吧 ----_<_>_---- 首先先清楚一些excel的基本概念: 在op ...
- jquery ajax 数据传输
在 form表单中,需要发送给后台的是一串长数据,后台才能接受,而用户则只需要输入字符串中的一部分,这种情况下,就需要将用户输入内容,和剩余部分进行拼串,然后添加进 formData 中传输. 另一种 ...
- TDD 之 Dojo coding
dojo和kata的练习记录: 进入 http://cyber-dojo.org/ 由一个人进行 setup a default practice,然后创建: 这里支持各种语言和各种测试框架,这里 ...
- Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式
Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...
- HDU4027 Can you answer these queries?(线段树 单点修改)
A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use ...