如何比较数组的“大小”?
2011-05-17 17:08
197 查看
有这样2个数组,如何比较他们的大小呢?
View Code
这样就可以用这种方式判断了:
如果2个数组长度不一样。肯定返回是false。否则,逐个比较数组里的元素。如果没发现不同,返回true。
还有一个问题:我想知道哪个数组大小怎么办?
NET4.0引入了一个新的接口IStructuralComparable,并且Array也实现了此接口。接口定义如下:
比较“集合对象大小比较”也有2种方式:
1)通过StructuralComparisons.StructuralComparer获取。
2)通过Comparer<T>.Default属性获取针对特定类型的“集合对象大小比较器”对象。
所以可以写下如下代码:
如果 arr1>arr2 得到“1”,arr1<arr2 得到 “-1”,等于的话是“0”。
View Code
public abstract class EqualityComparer<T> : IEqualityComparer, IEqualityComparer<T> { public static EqualityComparer<T> Default { get; } }
这样就可以用这种方式判断了:
Console.WriteLine((arr1 as IStructuralEquatable).Equals(arr2, StructuralComparisons.StructuralEqualityComparer)); Console.WriteLine((arr1 as IStructuralEquatable).Equals(arr2, EqualityComparer<int>.Default));
如果2个数组长度不一样。肯定返回是false。否则,逐个比较数组里的元素。如果没发现不同,返回true。
还有一个问题:我想知道哪个数组大小怎么办?
NET4.0引入了一个新的接口IStructuralComparable,并且Array也实现了此接口。接口定义如下:
public interface IStructuralComparable { int CompareTo(object other, IComparer comparer); }
比较“集合对象大小比较”也有2种方式:
1)通过StructuralComparisons.StructuralComparer获取。
2)通过Comparer<T>.Default属性获取针对特定类型的“集合对象大小比较器”对象。
所以可以写下如下代码:
Console.WriteLine((arr1 as IStructuralComparable).CompareTo(arr2, StructuralComparisons.StructuralComparer)); Console.WriteLine((arr1 as IStructuralComparable).CompareTo(arr2,Comparer.Default));
如果 arr1>arr2 得到“1”,arr1<arr2 得到 “-1”,等于的话是“0”。
相关文章推荐
- shell 版本号比较_用shell如何比较软件版本号的大小
- LabVIEW比较数值数组元素大小
- 如何在函数在求数组大小
- 如何比较串的大小(其实就是比较串的内部编码)
- c++如何获得数组的大小
- 不进行比较如何确定两个数的大小
- BigDecimal如何比较大小
- 数组排序方法的性能比较(5):对象大小与排序性能
- 如何使用freemarker比较大小
- 斗地主算法的设计与实现(三)--如何比较两手牌的大小
- MyBatis SQL中如何比较大小
- 在C#中如何比较两个byte[]数组相等
- .NET中如何比较两个版本号的大小
- vb 如何定义一个未知大小一维数组?
- java中两个字符串如何比较大小
- sql server中字符串类型的日期如何比较大小
- 技术型:char型数据是如何比较大小的字符型char
- 斗地主算法的设计与实现(三)--如何比较两手牌的大小
- 数组中元素的大小比较思想
- 数组元素比较大小