草庐IT

COMPARETO

全部标签

ios - Objective-C compareTo :

在Objective-C中是否有比较两个对象的标准机制?我知道isEqual方法,但我不是在寻找完全相等,而是在寻找小于/大于/等于一种比较。在Java中我们有compareTo:可以做到这一点,在Objective-C中有类似的东西吗? 最佳答案 在Objective-C中没有用于比较的标准协议(protocol),例如ComparableJava中的接口(interface),但Foundation框架中的一些类定义了一个compare:方法。NSString和NSNumber是一些例子。如果您想为自定义类提供自己的比较方法,我

ios - Objective-C compareTo :

在Objective-C中是否有比较两个对象的标准机制?我知道isEqual方法,但我不是在寻找完全相等,而是在寻找小于/大于/等于一种比较。在Java中我们有compareTo:可以做到这一点,在Objective-C中有类似的东西吗? 最佳答案 在Objective-C中没有用于比较的标准协议(protocol),例如ComparableJava中的接口(interface),但Foundation框架中的一些类定义了一个compare:方法。NSString和NSNumber是一些例子。如果您想为自定义类提供自己的比较方法,我

c# - 比较两个数字并返回 -1、0 或 1

是否有一个简单的数学函数可以用来比较数字x和y,当x小于y时返回-1,当x大于y时返回1,当它们相等时返回0?如果不是,是否有一个优雅的解决方案(没有任何if's)将Math.Max(x,y)的输出转换为这些返回值?我正在考虑将数字除以自己,例如123/123=1但这将引入除以0的问题。 最佳答案 对于您严格的-1、0或1要求,没有一种方法可以保证做到这一点。但是,您可以使用Int32.CompareTo的组合和Math.Sign:intvalue=Math.Sign(x.CompareTo(y));或者,如果您对仅以负数、正数和0

c# - 比较两个数字并返回 -1、0 或 1

是否有一个简单的数学函数可以用来比较数字x和y,当x小于y时返回-1,当x大于y时返回1,当它们相等时返回0?如果不是,是否有一个优雅的解决方案(没有任何if's)将Math.Max(x,y)的输出转换为这些返回值?我正在考虑将数字除以自己,例如123/123=1但这将引入除以0的问题。 最佳答案 对于您严格的-1、0或1要求,没有一种方法可以保证做到这一点。但是,您可以使用Int32.CompareTo的组合和Math.Sign:intvalue=Math.Sign(x.CompareTo(y));或者,如果您对仅以负数、正数和0

c# - 为什么使用 TimeSpan.CompareTo() 而不是 < > 或 =

我查看了一些Microsoft的Kinect传感器代码示例,无意中发现了以下行。TimeSpanzeroDuration=TimeSpan.FromSeconds(0.0);TimeSpantimeRemaining=...;if(timeRemaining.CompareTo(this.zeroDuration)>0){}我了解CompareTo()在排序等场景中的用处,但为什么要在条件if()中使用它而不是更直接的方法?if(timeRemaining>this.zeroDuration){}PS:如果它来自任何其他来源,我会持保留态度,但考虑到代码的一般质量,假设有一个原因

c# - 为什么使用 TimeSpan.CompareTo() 而不是 < > 或 =

我查看了一些Microsoft的Kinect传感器代码示例,无意中发现了以下行。TimeSpanzeroDuration=TimeSpan.FromSeconds(0.0);TimeSpantimeRemaining=...;if(timeRemaining.CompareTo(this.zeroDuration)>0){}我了解CompareTo()在排序等场景中的用处,但为什么要在条件if()中使用它而不是更直接的方法?if(timeRemaining>this.zeroDuration){}PS:如果它来自任何其他来源,我会持保留态度,但考虑到代码的一般质量,假设有一个原因

c# - 覆盖 CompareTo : What to do with null case?

当给定对象为null时,CompareTo方法应该返回什么?MSDNLibrary显示了返回1的示例。但我本以为会抛出错误,因为无法与null进行比较。我希望对这个答案有不同的看法。什么是最佳实践方法? 最佳答案 是的,有一个最佳实践。与其他答案所说的相反,有一个预期的标准,而不仅仅是最受欢迎的行为。IComparable.CompareTo的MSDN文档中给出了正确答案和IComparable.CompareTo:Bydefinition,anyobjectcomparesgreaterthannull,andtwonullref

c# - 覆盖 CompareTo : What to do with null case?

当给定对象为null时,CompareTo方法应该返回什么?MSDNLibrary显示了返回1的示例。但我本以为会抛出错误,因为无法与null进行比较。我希望对这个答案有不同的看法。什么是最佳实践方法? 最佳答案 是的,有一个最佳实践。与其他答案所说的相反,有一个预期的标准,而不仅仅是最受欢迎的行为。IComparable.CompareTo的MSDN文档中给出了正确答案和IComparable.CompareTo:Bydefinition,anyobjectcomparesgreaterthannull,andtwonullref

c# - 就地排序 List<Tuple<int, int>>

我将如何按降序排序,List>使用元组的第一个元素作为确定顺序的值?它必须就地,我只知道如何使用返回新列表的LINQ来做到这一点。 最佳答案 您只需要提供一个IComparer>或Comparison>到List.Sort方法。后者可能更容易指定内联:list.Sort((x,y)=>y.Item1.CompareTo(x.Item1));如果你想按第一个值然后是第二个值排序,它会变得有点棘手,但仍然可行。例如:list.Sort((x,y)=>{intresult=y.Item1.CompareTo(x.Item1);return

c# - 就地排序 List<Tuple<int, int>>

我将如何按降序排序,List>使用元组的第一个元素作为确定顺序的值?它必须就地,我只知道如何使用返回新列表的LINQ来做到这一点。 最佳答案 您只需要提供一个IComparer>或Comparison>到List.Sort方法。后者可能更容易指定内联:list.Sort((x,y)=>y.Item1.CompareTo(x.Item1));如果你想按第一个值然后是第二个值排序,它会变得有点棘手,但仍然可行。例如:list.Sort((x,y)=>{intresult=y.Item1.CompareTo(x.Item1);return