C#中关于实现IComparable接口的说明
2019-05-23 12:57
288 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41399076/article/details/90478435
最近在学习关于C# 语言 学习到了接口部分,发现了个有意思的现象,接口不能使用Sort方法对除int类型以外的数组数据类型排序
Sort方法应该是只能对int类型的数组排序 所以就要用到IComparable这个接口里面的CompareTo方法 通过实际的情况重写这个方法实现对非int类型的数组排序,在方法里面,返回值的不同表示了两个数组中两个元素比较的结果。
下面的代码就是解决了这个问题,通过引用IComparable 接口 重写内部的ToCompare方法,通过判断返回结果对数组中的元素进行排序。
[code]class Program { static void PrintOut(string s,Myclass[] mc) { Console.Write(s); foreach (var m in mc) { Console.Write("{0} ",m.TheValue); }Console.WriteLine(""); } static void Main(string[] args) { var myInt = new[] { 20, 4, 16, 9, 2 }; Myclass[] mcArr = new Myclass[5]; for (int i = 0; i < 5; i++) { mcArr[i] = new Myclass(); mcArr[i].TheValue = myInt[i]; } PrintOut("Initial Order: ",mcArr); Array.Sort(mcArr); PrintOut("Sort Order: ",mcArr); } } /* * 创建类并实现引用 * 创建了一个实现接口的方法并且对方法进行重写,实现比较功能 */ class Myclass : IComparable { public int TheValue; public int CompareTo(object obj) { Myclass mc = (Myclass)obj; if (this.TheValue < mc.TheValue) { return -1; } if (this.TheValue > mc.TheValue) { return 1; }return 0; } }
相关文章推荐
- c# 实现IComparable、IComparer接口、Comparer类的详解
- C#利用iComparable接口实现List排序
- [原创]详述IComparer,IComparable接口,实现自定义方法比较对象大小并排序(C#)
- 在C#开发BHO时,关于IObjectWithsite接口实现问题
- C# 中关于接口实现、显示实现接口以及继承
- c#如何实现IComparable接口
- C#中的IComparable 和 IComparer 接口,实现列表中的对象比较和排序
- c# 实现IComparable、IComparer接口、Comparer类的详解
- c# .net 关于接口实现方式:隐式实现/显式实现!
- C# 中关于接口实现、显示实现接口以及继承
- c# 实现IComparable、IComparer接口、Comparer类的详解
- 关于c#实现计算机音频接口输出固定频率波形的一些问题
- 实现Icomparable接口(C#)
- 关于c#短信发送接口使用说明
- Socket接口原理及用C#语言实现
- 关于用.Net平台开发SPMS_API开发接口(青牛软件 SPInterface.dll) 里的PChar说明
- 转-支付宝Payto接口的c#.net实现
- C#+AE实现类似IDentify功能及对高亮显示相关接口的总结
- C#中CollectionBase类中IList接口的实现
- 关于《用C#编写ActiveX控件》的几点说明