ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:26.58KB ,
资源ID:28758999      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28758999.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课题C#集合.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课题C#集合.docx

1、课题C#集合C#集合先来了解下集合的基本信息1、BCL中集合类型分为泛型集合与非泛型集合。2、非泛型集合的类和接口位于System.Collections命名空间。3、泛型集合的类和接口位于System.Collections.Generic命名空间。ICollection接口是System.Collections命名空间中非泛型集合类的基接口,它继承自IEnumerable接口,从IEnumerable接口继承意味着实现该接口的实现类需要实现一个枚举器方法:GetEnumerator,该方法返回IEnumerator类型的数据。IDictionary和IList接口继承自ICollectio

2、n作为更为专用的接口,其中IDictionary接口是键/值对接口,它的实现如HashTable类;而IList是值的集合,其成员可通过索引访问,如ArrayList类,次类集合与数组相比,可以认为是可变的集合,优点有,长度自动增长等。IEnumerable和IEnumerable是所有集合或集合接口的基接口,所有集合接口或集合都继承、实现了它。其中IEnumerable是最底层的接口。在非泛型集合里存放的都是System.Object类型。一、下面列出非泛型和泛型集合的接口非泛型集合接口泛型集合接口说明ICollectionICollection定义所有集合的大小(Count),枚举器(fo

3、reach)和同步(copyto)方法,继承自IEnumerableIListIList 表示可按照索引单独访问的一组对象(像数组一样)IDictionary IDictionary 表示键/值对的集合IComparer IComparer 定义类型为比较两个对象而实现的方法IEqualityComparerIEqualityComparer 定义方法以支持对象的相等比较IEnumerableIEnumerable 公开枚举器。实现了该接口意味着允许foreach语句循环访问集合中的元素IEnumeratorIEnumerator 支持在泛型集合上进行简单迭代下面来详细介绍各种集合接口和集合。

4、个人认为应该从根底说起。先抱着MSDN来说IEnumerable,扩展方法就不说了,扩展方法跳过,留到学Linq的时候再说。1、IEnumerable接口就一个方法,没有属性。方法说明GetEnumerator 返回一个循环访问集合的枚举数。实现或继承了该接口,就是为了这个方法,可以foreach遍历。2、IEnumerable接口也一样,也是就一个方法,没有属性。方法 说明GetEnumerator返回一个循环访问集合的枚举数。3、ICollection接口方法 说明CopyTo 从特定的 Array 索引处开始,将 ICollection 的元素复制到一个 Array 中。GetEnume

5、rator 返回一个循环访问集合的枚举数。 (继承自 IEnumerable。)属性Count 获取 ICollection 中包含的元素数。 原来Count的源头在这里。IsSynchronized 获取一个值,该值指示是否同步对 ICollection 的访问(线程安全)。SyncRoot 获取可用于同步 ICollection 访问的对象。4、ICollection方法说明Count 获取 ICollection(Of ) 中包含的元素数。IsReadOnly 获取一个值,该值指示 ICollection(Of ) 是否为只读。属性Add 将某项添加到 ICollection(Of )

6、中。Clear 从 ICollection(Of ) 中移除所有项。Contains 确定 ICollection(Of ) 是否包含特定值。CopyTo 从特定的 Array 索引开始,将 ICollection(Of ) 的元素复制到一个 Array 中。GetEnumerator 已重载。Remove 从 ICollection(Of ) 中移除特定对象的第一个匹配项。这个ICollect,才开始有点集合的影子了,可以Add、Clear了,怪不得它作为泛型集合接口的基类。5、IListIList继承了ICollection和IEnumerable方法说明Add 将某项添加到 IList

7、中。Clear 从 IList 中移除所有项。Contains 确定 IList 是否包含特定值。CopyTo 从特定的 Array 索引处开始,将 ICollection 的元素复制到一个 Array 中。 (继承自 ICollection。)GetEnumerator 返回一个循环访问集合的枚举数。 (继承自 IEnumerable。)IndexOf 确定 IList 中特定项的索引。Insert 将一个项插入指定索引处的 IList。Remove 从 IList 中移除特定对象的第一个匹配项。RemoveAt 移除指定索引处的 IList 项。属性Count 获取 ICollection

8、 中包含的元素数。 (继承自 ICollection。)IsFixedSize 获取一个值,该值指示 IList 是否具有固定大小。IsReadOnly 获取一个值,该值指示 IList 是否为只读。IsSynchronized 获取一个值,该值指示是否同步对 ICollection 的访问(线程安全)。 (继承自 ICollection。)Item获取或设置指定索引处的元素。SyncRoot 获取可用于同步 ICollection 访问的对象。 (继承自 ICollection。)可以看到,在不断的继承过程中,这些接口不断地添加自己的东西,越继承越多,越继承越多。6、IListIList继承

9、了ICollection,IEnumerable,IEnumerable方法说明Add 将某项添加到 ICollection(Of ) 中。 (继承自 ICollection(Of )。)Clear 从 ICollection(Of ) 中移除所有项。 (继承自 ICollection(Of )。)Contains 确定 ICollection(Of ) 是否包含特定值。 (继承自 ICollection(Of )。)CopyTo 从特定的 Array 索引开始,将 ICollection(Of ) 的元素复制到一个 Array 中。 (继承自 ICollection(Of )。)GetEnu

10、merator 已重载。IndexOf 确定 IList(Of ) 中特定项的索引。Insert 将一个项插入指定索引处的 IList(Of )。Remove 从 ICollection(Of ) 中移除特定对象的第一个匹配项。 (继承自 ICollection(Of )。)RemoveAt 移除指定索引处的 IList(Of ) 项。属性Count 获取 ICollection(Of ) 中包含的元素数。 (继承自 ICollection(Of )。)IsReadOnly 获取一个值,该值指示 ICollection(Of ) 是否为只读。 (继承自 ICollection(Of )。)It

11、em 获取或设置指定索引处的元素。同样,在不断的继承中,增加了新的东西,功能也越来越强大,支持索引获取和设置就是IList这个源头的。一直弄不明白,NHibernate为什么会选择这个接口来返回数据,其实这个接口的东西够用了。7、IDictionary接口IDictionary是最底层出现的键/值对集合了,相当于值集合中的ICollection方法说明Add 已重载。Clear 从 ICollection(Of ) 中移除所有项。 (继承自 ICollection(Of )。)Contains 确定 ICollection(Of ) 是否包含特定值。 (继承自 ICollection(Of )

12、。)ContainsKey确定 IDictionary(Of ) 是否包含具有指定键的元素。CopyTo 从特定的 Array 索引开始,将 ICollection(Of ) 的元素复制到一个 Array 中。 (继承自 ICollection(Of )。)GetEnumerator 已重载。Remove 已重载。TryGetValue 获取与指定的键相关联的值。属性Count 获取 ICollection(Of ) 中包含的元素数。 (继承自 ICollection(Of )。)IsReadOnly 获取一个值,该值指示 ICollection(Of ) 是否为只读。 (继承自 IColle

13、ction(Of )。)Item 获取或设置具有指定键的元素。Keys 获取包含 IDictionary(Of ) 的键的 ICollection(Of )。Values 获取包含 IDictionary(Of ) 中的值的 ICollection(Of )。该接口提供的功能和ICollection差不多,其实就是键/值对的开宗立派者。8、IDictionary方法 说明Add 在 IDictionary 对象中添加一个带有所提供的键和值的元素。Clear 从 IDictionary 对象中移除所有元素。Contains 确定 IDictionary 对象是否包含具有指定键的元素。CopyTo

14、 从特定的 Array 索引处开始,将 ICollection 的元素复制到一个 Array 中。 (继承自 ICollection。)GetEnumerator 已重载。Remove 从 IDictionary 对象中移除带有指定键的元素。属性Count 获取 ICollection 中包含的元素数。 (继承自 ICollection。)IsFixedSize 获取一个值,该值指示 IDictionary 对象是否具有固定大小。IsReadOnly 获取一个值,该值指示 IDictionary 对象是否为只读。IsSynchronized 获取一个值,该值指示是否同步对 ICollectio

15、n 的访问(线程安全)。 (继承自 ICollection。)Item 获取或设置具有指定键的元素。Keys 获取 ICollection 对象,它包含 IDictionary 对象的键。SyncRoot 获取可用于同步 ICollection 访问的对象。 (继承自 ICollection。)Values 获取 ICollection 对象,它包含 IDictionary 对象中的值。9、ISetISet同样是继承自ICollection,IEnumerable,IEnumerable方法说明Add(T) 将某项添加到 ICollection 中。 (继承自 ICollection。)Add

16、(T) 向当前集内添加元素,并返回一个指示是否已成功添加元素的值。Clear从 ICollection 中移除所有项。 (继承自 ICollection。)Contains 确定 ICollection 是否包含特定值。 (继承自 ICollection。)CopyTo 从特定的 Array 索引开始,将 ICollection 的元素复制到一个 Array 中。 (继承自 ICollection。)ExceptWith 从当前集内移除指定集合中的所有元素。GetEnumerator() 返回一个循环访问集合的枚举数。 (继承自 IEnumerable。)GetEnumerator() 返回一

17、个循环访问集合的枚举器。 (继承自 IEnumerable。)IntersectWith 修改当前集,使该集仅包含指定集合中也存在的元素。IsProperSubsetOf 确定当前的设置是否正确 (严格) 指定集合的子集。IsProperSupersetOf 确定当前的设置是否正确 (严格) 指定集合中的超集。IsSubsetOf 确定一个集是否为指定集合的子集。IsSupersetOf 确定当前集是否为指定集合的超集。Overlaps 确定当前集是否与指定的集合重叠。Remove 从 ICollection 中移除特定对象的第一个匹配项。 (继承自 ICollection。)SetEqual

18、s 确定当前集与指定的集合中是否包含相同的元素。SymmetricExceptWith 修改当前集,使该集仅包含当前集或指定集合中存在的元素(但不可包含两者共有的元素)。UnionWith 修改当前设置,以使其包含当前集或指定的集合中的所有元素。记住这些接口之间的关系,其实是非常重要的,方法和属性记不全也无所谓,但是需要记住各自提供的功能,以及继承关系。先说IComparer接口,这个接口就一个方法,用于如何比较两个对象 public class StringLengthComparer : IComparer public int Compare(string s1, string s2)

19、if (s1.Length s2.Length) return (1); else if (s1.Length s2.Length) return (2); else return (0); 说完了集合接口,现在开始说集合。1、ArrayListArrayList实现了IList、ICollection、IEnumerable接口。ArrayList与Array的名字很相似,现在来比较一下两者的异同。相同点:(1)、两者都实现了IList、ICollection、IEnumerable接口。(2)、两者都可以使用整数索引访问集合中的元素,包括读取和赋值,且集合中的索引都从0开始。不同点:(1)

20、、ArrayList是集合,而Array是数组。(2)、ArrayList是具体类,Array是抽象类。(3)、数组必须在实例化时指定元素的数量,该数量一旦确定就不可以更改了,而ArrayList扩展了这一点,当实例化一个ArrayList实例时可以不指定集合元素数(有默认初始容量),当然你也可以指定初始容量。(4)、获取数组的元素数时使用Length属性,而获取ArrayList集合的元素数时使用Count属性。(5)、数组可以有多维,而ArrayList只能是一维。来看ArrayList具体提供的功能属性说明Capacity 获取或设置 ArrayList 可包含的元素数。Count 获取

21、 ArrayList 中实际包含的元素数。IsFixedSize 获取一个值,该值指示 ArrayList 是否具有固定大小。IsReadOnly 获取一个值,该值指示 ArrayList 是否为只读。IsSynchronized 获取一个值,该值指示是否同步对 ArrayList 的访问(线程安全)。Item 获取或设置指定索引处的元素。SyncRoot 获取可用于同步 ArrayList 访问的对象。方法Adapter 为特定的 IList 创建 ArrayList 包装。Add 将对象添加到 ArrayList 的结尾处。AddRange 将 ICollection 的元素添加到 Arr

22、ayList 的末尾。BinarySearch 已重载。 使用对分检索算法在已排序的 ArrayList 或它的一部分中查找特定元素。Clear 从 ArrayList 中移除所有元素。Clone 创建 ArrayList 的浅表副本。Contains 确定某元素是否在 ArrayList 中。CopyTo 已重载。 将 ArrayList 或它的一部分复制到一维数组中。FixedSize 已重载。 返回具有固定大小的列表包装,其中的元素允许修改,但不允许添加或移除。GetEnumerator 已重载。 返回循环访问 ArrayList 的枚举数。GetRange 返回 ArrayList,它

23、表示源 ArrayList 中元素的子集。IndexOf 已重载。 返回 ArrayList 或它的一部分中某个值的第一个匹配项的从零开始的索引。Insert 将元素插入 ArrayList 的指定索引处。 可在任意位置插入。InsertRange 将集合中的某个元素插入 ArrayList 的指定索引处。LastIndexOf 已重载。 返回 ArrayList 或它的一部分中某个值的最后一个匹配项的从零开始的索引。ReadOnly 已重载。 返回只读的列表包装。Remove 从 ArrayList 中移除特定对象的第一个匹配项。RemoveAt 移除 ArrayList 的指定索引处的元素

24、。RemoveRange 从 ArrayList 中移除一定范围的元素。Repeat 返回 ArrayList,它的元素是指定值的副本。Reverse 已重载。 将 ArrayList 或它的一部分中元素的顺序反转。SetRange 将集合中的元素复制到 ArrayList 中一定范围的元素上。Sort 已重载。 对 ArrayList 或它的一部分中的元素进行排序。Synchronized 已重载。 返回同步的(线程安全)列表包装。ToArray 已重载。 将 ArrayList 的元素复制到新数组中。TrimToSize 将容量设置为 ArrayList 中元素的实际数目。 static void Main(string a

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1