03 2014 档案
摘要:List和ArrayList Generic的List和非Generic的ArrayList类支持可变化大小的对象数组,它们也是最常见的集合类。ArrayList实现了IList接口,而List实现了IList和IList接口(以及新增的IReadonlyList)。与数组不同,所有的接口实现都是公开的,并且Add和Remove方法也对外公开;它们会按照你的希望执行。 在List和ArrayLis...
阅读全文
摘要:虽然列举接口提供了一个协议,用于向前的方式遍历集合,但它们没有提供一种机制来确定集合的大小,通过索引访问集合的成员,搜索集合,或修改集合。为了实现这些功能,.NET Framework定义了ICollection,IList和IDictionary接口。每个接口都有Generic的接口和非Generic的接口,请注意非Generic多数用于支持遗留代码。
阅读全文
摘要:Array类是所有一维和多维数组的隐式基类,同时也是实现标准集合接口的最基本的类型。Array类实现了类型统一,因此它为所有数组提供了一组通用的方法,不论这些数组元素的类型,这些通用的方法均适用。由于Array是所有集合的基础,因为我们详细介绍了如何初始化数组、数组的内存分配情况、如何遍历数组、如何搜索数组、以及数组排序和数组反转的细节、最后涉及了数组的复制/克隆、以及数组转换和更改数组大小的内容。希望本文能让你了解数组的基本用法及底层细节。
阅读全文
摘要:在计算机这个范畴内存在许多种类的集合,从简单的数据结构比如数组、链表,到复杂的数据结构比如红黑树,哈希表。尽管这些数据结构的内部实现和外部特征大相径庭,但是遍历集合的内容确是一个共同的需求。.NET Framework通过IEnumerable和IEnumerator接口实现遍历集合功能。 Non-Generic Generic 备注 IEnumerator IEnumerator I...
阅读全文
摘要:与C#定义了相等性比较规范一样,C#也定义了排序比较规范,以确定一个对象与另一个对象的先后顺序。排序规范如下:1)IComparable接口(包括IComparable接口和IComparable接口);2)和运算符.
当需要实现排序算法时,实现Comparable接口,然后通过该接口实现类完成排序
阅读全文
摘要:IEnuramble Extension Methods
阅读全文
摘要:本文阐述C#中相等性比较,其中主要集中在下面两个方面:1) ==和!=运算符,什么时候它们可以用于相等性比较,什么时候它们不适用,如果不使用,那么它们的替代方式是什么?2)什么时候,需要自定一个类型的相等性比较逻辑 3)于相等行比较相关的接口IEquatable,IEqualityComparer,以及IEqualityComparer,这些接口的差别,已经使用的场景
阅读全文