问题描述

未经处理的异常:  System.InvalidOperationException: 未能比较数组中的两个元素。 ---> System.ArgumentException: 必须至少有 一个对象实现 IComparable。在 System.Collections.Comparer.Compare(Object a, Object b)在 System.Array.SorterObjectArray.InsertionSort(Int32 lo, Int32 hi)在 System.Array.SorterObjectArray.IntroSort(Int32 lo, Int32 hi, Int32 depthLimit)在 System.Array.SorterObjectArray.IntrospectiveSort(Int32 left, Int32 length)--- 内部异常堆栈跟踪的结尾 ---在 System.Array.SorterObjectArray.IntrospectiveSort(Int32 left, Int32 length)在 System.Array.Sort(Array keys, Array items, Int32 index, Int32 length, IComparer comparer)在 System.Collections.ArrayList.Sort(Int32 index, Int32 count, IComparer comparer)在 System.Collections.ArrayList.Sort()在 Homework.Program.Main(String[] args) 位置 E:\Code\Programs\C#\Homework\Program.cs:行号 201

官方文档

ArrayList 类(System.Collections.ArrayList):https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.arraylist?view=netframework-4.8

IComparable 接口:https://docs.microsoft.com/zh-cn/dotnet/api/system.icomparable?view=netframework-4.8

IComparable<T> 接口:https://docs.microsoft.com/zh-cn/dotnet/api/system.icomparable-1?view=netframework-4.8

问题分析

IComparable<T> 接口不适用于ArrayLIst。

ArrayLIst.Sort()方法只能对实现IComparable接口的类对象进行排序。

解决方案

使用非泛型的Comparable接口替换泛型的Comparable<T> 接口。

   class Circle : Ellipse, IComparable
        public int CompareTo(Object other){return this.Radius.CompareTo(((Circle)other).Radius);}

参考文章

https://blog.csdn.net/weixin_43272781/article/details/105292114

https://blog.csdn.net/Maybe_ch/article/details/81359408

C#——实现IComparableT 接口,ArrayLIst调用ArrayLIst.Sort()抛出System.InvalidOperationException异常解决方案相关推荐

  1. android asmack调用MultiUserChat.getHostedRooms方法出现空指针的异常解决方案

    今天在做即时通讯群聊时,调用MultiUserChat.getHostedRooms(conn, SmackTools.getInstance().conn.getServiceName());方法获 ...

  2. List 接口相关知识 - ArrayList数据结构 - Java - 细节狂魔(估摸着有几万字)

    文章目录 泛型的引入 实现一个通用的顺序表(直接实践) 准备工作,相信大家都看得懂. 开始掰扯 总结 包装类(Wrapper Class) 基本数据类型和包装类直接的对应关系 包装类存在的意义 实战( ...

  3. Java List与ArrayList 的区别(List list =new Arraylist(); ArrayList<String> arrayList = new ArrayList())

    一般想知道List 与ArrayList 的区别可能大部分都是看到了 List list = new ArrayList(); 和 ArrayList arrayList = new ArrayLis ...

  4. java接口方式调用海康大华摄像机预览。

    客户有海康和大华的监控设备,没有买各类安防平台,国标方式需要预留给其他需要接入的系统,得兼容高版本chrome,询问了大华的客服人员,最后选择了该方案进行解决,记录下曲折的过程.延迟大约10秒的样子, ...

  5. webservice java接口远程调用

    webservice 例如:java接口远程调用 文章目录 webservice 一.使用步骤 1引入Maven依赖 2.读入数据 总结 一.使用步骤 1引入Maven依赖 <!-- axis ...

  6. rpc接口并发调用实例

    问题背景 需要根据id通过rpc调用查询具体信息,因为没有提供批量查询的接口,所以做法是挨个遍历查询,那意味着: 如果有100个id,就需要顺序进行100次rpc调用,假设每次rpc接口的调用时间是5 ...

  7. ArrayList 使用迭代抛出ConcurrentModificationException解决方法

    注意,ArrayList实现不是同步的.如果多个线程同时访问一个 ArrayList 实例,而其中至少一个线程从结构上修改了列表,那么它必须 保持外部同步.(结构上的修改是指任何添加或删除一个或多个元 ...

  8. 快递查询接口的调用与解析案例

    GoTrace简介 gotrace网站[http://www.gotrace.cn],专业快递查询跟踪.于2013年10月正式发布上线,是一个集全世界100多个国家的国际挂号.国际快递.国际包裹等跟踪 ...

  9. Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)

    1. 接口概念 接口是双方约定的一种合作协议.接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节.接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式.类型及结构. 接口内部存 ...

最新文章

  1. LINQ系列:LINQ to SQL Select查询
  2. 将远程服务器获取的linkedhashMap对象转为实体类对象
  3. 什么是依赖注入?(听来的一个笑话)
  4. [转载]jquery cookie的用法
  5. shell中修改=后的值
  6. Python带参数的装饰器
  7. 我对无服务器架构的一些看法
  8. STM32(5)——通用定时器基本定时器
  9. hp1015驱动64位_HP LaserJet 1015 驱动下载
  10. JavaMail的使用
  11. dell服务器卸载系统,如何通过 iDRAC9 装载和卸载驱动程序包
  12. 微软服务器监控软件,Windows监控,Windows监控软件
  13. Java开发必学:Java翻译器软件下载手机版
  14. Resulting document after update is larger than 16777216
  15. 如何用一张照片证明你是老网民?
  16. Basler GigE相机,关于丢帧问题的描述和解决【Basler】
  17. 这篇博文终于讲清了 全连接、全尺寸卷积、1*1卷积的关系
  18. Sql Server基础篇(一)
  19. 面试常见问题:如何回答才得体?
  20. 有理函数积分超详细讲解

热门文章

  1. java成果_JAVA WEB期末项目第二阶段成果
  2. python怎么查看列表_Python 小白,关于对于列表的+=操作不明白,查了半天也不知道怎么查,并且查询无果,请人指点?...
  3. python基础案例教程_python基础教程 10-11例子如何执行
  4. flink file sink
  5. iframe嵌套页面 跨域_跨域解决方案
  6. PHP调用tushare,python调用tushare获取沪股通、深股通成份股数据
  7. 【转载】Could not create the view: An unexpected exception was thrown.问题解决
  8. 用c++来开发php的底层模块|用c++来开发apache模块,Apache模块开发实例(2)
  9. 容器部署不适合文件服务器,建议使用内置容器部署War文件与可执行jar
  10. 命令行调用springboot服务_Spring Boot命令行界面的使用