Compare方法出错

Aspose pdf 转 html,doc,png 示例 Aspose pdf 转 html,doc,png 示例,可用,无码 surfsky.cnblogs.com 立即下载

原文: http://blog.youkuaiyun.com/youngmumu/archive/2010/05/05/5559258.aspx

ps:写方法时,加一个相等 return 0;

 

{"当 Array.Sort 调用 x.CompareTo(x) 时,IComparer (或其依赖的 IComparable 方法)未返回零。x:“SGGM.Attribute.cRow”x 的类型:“cRow”IComparer:“System.Array+FunctorComparer`1[SGGM.Attribute.cRow]”。"}

因为发现该排序不稳定,当比较的值相等时 ,会出现重新排序的现象。所以做了如下调整,结果出现以上错误

private int  comparison(Tvalue ValueA,Tvalue ValueB)
        {
            if( ValueA>ValueB)// compare 方法比较的是同一个引用时返回0
            {
                return 1;
            }

             else

             {

                  return -1;

             }
                      
         }

在MSDN中查到

 在list排序方法中   public void Sort (Comparison<T> comparison)  可能会引发以下两个异常

 

ArgumentNullException

comparison 为空引用;即list中有null的情况,Comparison<T> 是需要判断出来,并给出返回值。

 

list[3]=null. 当其他项与该项比较时,没有判断就会引发该异常。所以在comparison实例中需要判断  ValueA ,ValueB 中存在null的情况。

 

ArgumentException

在排序过程中, comparison 的实现会导致错误。例如,当将一项与其自身比较时,comparison 可能不返回 0,此时引发该异常。

 

因为sort方法法使用 System.Array.Sort,后者使用 QuickSort 算法。此实现执行不稳定排序;亦即,如果两元素相等,则其顺序可能不被保留。相反,稳定排序保留相等元素的顺序。所以实例应判断出  ValueA = ValueB 的情况,并返回-1,即保留原有的顺序。但是该排序方法还要和 自己比较即 调用方法  x.CompareTo(x) ,所以comparison委托实例需要判断出这种情况 返回0

   private int  comparison(Tvalue ValueA,Tvalue ValueB)
        {
            if (ValueA.Equals(ValueB))  // compare 方法比较的是同一个引用时返回0
            {
                return 0;
            }

           if (ValueA== null)  //可以做到始终将null值做为小值排序。
                            {
                                nResult = -1;
                            }
                            else
                            {
                                nResult = 1;
                            }    
                      
         }

别再被坑了!手把手教你从官网下载免费正版Notepad++(附最新网盘链接) 本文详细指导如何从Notepad++官网安全下载正版软件,避免山寨版本带来的安全风险。通过识别官网特征、推荐官方下载渠道、揭露山寨网站骗局及验证正版功能,帮助用户高效获取纯净的Notepad++代码编辑器,并分享实用插件和配置优化技巧。 阅读详情

相关推荐

从零到一:基于Esp32与LVGL的ST7789屏幕驱动全流程实战

本文详细介绍了基于Esp32与LVGL的ST7789屏幕驱动全流程实战,包括环境准备、驱动文件改造、硬件接口配置、LVGL集成与优化等关键步骤。通过VSCode+ESP-IDF开发环境,读者可以快速掌握SPI模式下的屏幕驱动开发,解决常见问题如颜色错乱、画面撕裂等,并实现LVGL的高效集成与性能优化。

weixin_33725722的博客 711

C# List.Sort排序 异常问题

C#List.Sort排序,ArgumentException: 'Unable to sort because the IComparer. Compare() method returns inconsistent results.

yzvampire的博客 1396

Modelsim安装教程以及管理员身份运行patch_dll.bat时找不到文件mgls.dll的解决

Modesim安装教程 Modesim版本有很多,但是安装方式大都相同,我们以modesim.10.5为例,电脑使用的是win10 64位,讲一下安装过程中的步骤以及出现问题的解决方法 一 安装 1.首先解压安装包,在解压的安装包内选择应用程序,右键选择管理员运行。 2.稍等一会,有的电脑会弹出是否允许modesim进行更改,选择 是 即可,然后出现下面的界面,点击下一步。 3.弹出此界面选择安装路径,选择安装路径,我是在D盘新建的文件夹,直接把文件夹中的路径复制在框内。文件夹名称切记不要带中文 4.

weixin_48564372的博客 1万+

C# List.Sort分析

排序算法

qq_36790074的博客 1017

Unity UGUI深度优化

Unity UGUI优化相关

不定时分享所学所得,包括游戏开发和其他收获! 2718

保姆级教程:在Windows/Mac上搞定SAM 3的权重和BPE文件下载与配置

本文提供了一份详细的SAM 3权重和BPE文件下载与配置指南,特别针对国内开发者遇到的下载缓慢和配置错误问题。通过国内镜像源快速获取文件,并详细介绍了环境检查、文件下载、路径配置及常见问题解决方案,帮助开发者高效完成SAM 3的部署与使用。

weixin_42547431的博客 551

List.Sort异常笔记

list随机排序一直用的重写比较器,然后random返回数据排的。没想到会有这个问题,之前运行时报错:Unable to sort because the IComparer.Compare() method returns inconsistent results. Either a value does not compare equal to itself, or one value repeatedly compared to another value yields differe...

a598211757的博客 2002

AD9361功能介绍和使用

AD9361使用分数分频锁相环(PLL)来产生发射机和接收机本地振荡器(LO)频率和BB PLL。BB PLL 可用于数据转换、数字滤波器和 |/O 端口。PLL的参考时钟可以由外部振荡器或外部晶体(XO)和数字可编程片内可变电容提供,电容微调产生参考时钟频率,XO和微调电容的组合统称为DCXO。有多个天线输入的分集系统。接收链数据首先经过低噪声放大器(LNA),然后是同相(1)和正交(Q)放大器,混频器和频带整形滤波器,可将接收到的信号下变频为基带以进行数字化。时分双工(TDD)和频分双工(FDD)。。。

wangjie36的博客 1万+

Beyond Compare sftp加载远程文件夹出错的处理方法

用Beyond Compare的sftp连接ubuntu20.04 22.04的版本

againyuan的专栏 1217

CAN 通信测试工具 canutils

概述 CAN,Controller Area Network,控制器局域网,一种高可靠性的现场总线。广泛用于汽车电子、工业控制通信。 canutils 工具包内含 5 个独立的程序:canconfig、candump、canecho、cansend、cansequence。这几个程序的功能简述如下: canconfig:用于配置 CAN 总线接口的参数,主要是波特率和模式。 candump...

一个软件工程师的技术笔记 1万+

华为eNSP镜像包全集下载,包含CE6800、CE12800、NE系列等!

你好,这里是网络技术联盟站。昨天给大家介绍了win11、10下安装eNSP最新系列(1.3.00)并完美运行,附下载。从文章发布到发文前,一直有朋友想让瑞哥提供一下华为ENSP镜像包,今天安排!eNSP安装包、以及eNSP中所需要的镜像包(设备包)(CE、CX、NE40E、NE5000E、NE9000、USG)例如:导入一个USG设备包,eNSP中的USG5500和USG6000V都是可以启动的。如果你的报错“40”的话,那么打开Oracle VM VirtualBox这个虚拟机,删除对应报错的虚拟机,然后

网络技术联盟站 3万+

C#在Compare时出错:IComparer (或其依赖的 IComparable 方法)未返回零

C#在Compare时出错:IComparer (或其依赖的 IComparable 方法)未返回零 今天在C#实现一个IComparer接口时遇到了问题,在执行过程中抛出了如下异常: 当 Array.Sort 调用 x.CompareTo(x) 时,IComparer (或其依赖的 IComparable 方法)未返回零 当时楞了一下,不知道是怎么回事,后来发现应该先确定要比较

又被扼杀在萌芽 1558

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

[异常]List<T>.Sort()返回在Compare时出错:IComparer (或其依赖的 IComparable 方法)未返回零...

今天在实现一个IComparable<Dispatcher>接口时遇到了问题,在执行过程中抛出了如下异常: 当 Array.Sort 调用 x.CompareTo(x) 时,IComparer (或其依赖的 IComparable 方法)未返回零。x:“”x 的类型:“Dispatcher”IComparer:“”。;StackTrace: 在 System.Collect...

dhzf1907的博客 842

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【JAVA】BigDecimal判断是否为0, / by zero的问题修复

就知道这个判断有问题了,后来发现,BigDecimal的equal方法,还判断了精度,0和0.0并不相等。所以把全局的类似判断,全部修改,使用compare进行处理。若值为 0,则返回 0;若值小于 0,则返回 -1;若值大于 0,则返回 1。我要处理一个任务完成率的计算,任务完成率pct = 实际值 real / 任务值 task。因为刚开始测试的时候没有出现问题,所以一直这样用着,昨天突然发现系统报表一直在报错。进入计算前,我需要判断task是否为空,或者为0,防止除法出错。之前使用了equal方法。

柠檬加冰 572

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LeetCode 452. 用最少数量的箭引爆气球解答错误问题

LeetCode452题本是一道平平无奇的贪心算法题,求不相交区间的最大个数呗,但是就是有一个测试用例过不了。 看了看题解和评论区才发现,原来是实现comparator接口的compare方法时出了问题 Arrays.sort(points,new Comparator<int[]>(){ public int compare(int[] a1 , int[] a2){ return a1[1] - a2[1];//这一块出问...

weixin_45406155的博客 428

naarray查询 swift_Swift用字符串和数字对数组进行排序

I have an array of strings,let array = [ "10", "1", "101", "NA", "100", "20", "210", "200", "NA", "7" ]I would like to get the output sorted in ascending as,let sorted = [ "1", "7", "10", "20", "100",...

weixin_39863616的博客 264

OBE-JDK1.5编译注意事项

  今天通过CVS下载了OBE,由于安装了JDK1.5,结果编译的时候出现问题。解决如下:1.obe/obeengine/src/org/obe/convert/ConverterRegistry 中的compare方法全部出现问题,例如        public int compare(Object lhs, Object rhs) {            return ((Long)lhs

winion的专栏 1231

[盘点错误]在写TreeSet写重写比较函数时遇到的错误

Java中Comparable和Comparator的区别:Comparable是类内部实现(compareTo方法),定义自然排序;Comparator是外部实现(compare方法),支持多种排序规则。Comparable适用于单一排序场景(如String、Integer),Comparator则更灵活,可创建多个排序规则。典型用法:Comparable通过Collections.sort(list)调用,Comparator需传入实例(如new TreeSet<>(cmp))。开发时若需多

weixin_74080197的博客 733

oracle clob去重复,oracle sql clob查询重复数据,多字段-Oracle

oracle sql clob查询重复数据,多字段COMPARE 函數clob字段在查询时是无法 group by 和 distinct 的,所以如果要根据clob查找重复的数据是很麻烦的,网上大多提出要用DBMS_LOB.SUBSTR 来解决,DBMS_LOB.SUBSTR 把clob转换成字符串段再进行group by,而且如果字数太多还得分段转换,这样操作起来太麻烦,而且容易出现 字符串缓冲...

weixin_39684454的博客 1388

list stream 最大和最小值_初识stream,获取list中最大的数

初识stream,获取list中最大的数今天看到java8的stream用法,感觉很厉害的样子,代码简洁了不少,打算拿来上上手。打开idea,然后intList.stream()再点一下发现有好多方法,其中有俩一个min,还有一个max,难道说就是用来获取最大最小数的吗?我决定试一试:List intList = Arrays.asList(3, 1, 2);System.out.println(...

weixin_39965075的博客 1533

互斥锁、自旋锁以及原子操作的简单了解及使用(C语言)

互斥锁、自旋锁以及原子操作的简单了解及使用(C语言)

m0_62287395的博客 565

float compare_Java Float类的compare()方法与示例

float compare 浮动类compare()方法 (Float class compare() method) compare() method is available in java.lang package. compare()方法在java.lang包中可用。 compare() method is used to check equality or inequality of t...

1790
上一篇: 格式化代码快捷键
下一篇: 双硬盘下,xp和win7双菜单启动
zdhook
博客等级 码龄17年 23粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值