- 0
- 0
- 约1.7万字
- 约 13页
- 2017-06-15 发布于北京
- 举报
C#集合基础与运用
1.集合接口与集合类型
(1)集合的命名空间
大多数集合类都可以在System.Collections和System.Collections.Generic名称空间中找到。泛型集合位于System.Collections.Generic名称空间中;专用于特定类型的集合类位于System.Collections.Specialized名称空间中;线程安全的集合位于System.Collections.Concurrent名称空间中。
(2)集合接口介绍
1、IEnumerable与IEnumerator接口
其实IEnumerable接口是非常的简单,只包含一个抽象的方法GetEnumerator(),它返回一个可用于循环访问集合的IEnumerator对象。
??? public interface IEnumerable
??? {
??????? IEnumerator GetEnumerator();
}
IEnumerator对象有什么呢?它是一个真正的集合访问器,没有它,就不能使用foreach语句遍历集合或数组,因为只有IEnumerator对象才能访问集合中的项。IEnumerator接口定义了:一个Current属性用来获取当前集合中的项;MoveNext方法将游标的内部位置向前移动;Reset方法将枚举数设置为其初始位置,该位置位于集合中第一个元素之前。
??? public interface IEnumerator
??? {
??????? object Current { get; }
??????? bool MoveNext();
??????? void Reset();
}
一个collection要支持foreach进行遍历,就必须实现IEnumerable,并以某种方式返回迭代器对象:IEnumerator。
2、集合和列表实现的接口表
接口 说明 IEnumerableT 如果foreach语句用于集合,就需要此接口。 ICollectionT 此集合定义了Count属性、CopyTo、Add、Remove、Clear方法 IListT 可以通过位置访问几何元素 ISetT 此集合不允许有重复的元素 IDictionaryK,V 含有键值对的集合 ILookupK,V 含有键值对的集合,但可以通过一个键包含多个值 IComparerT 集合元素比较器,用于集合元素的排序 IEqualityComparerT 用于字典集合的比较器 IProducerConsumerCollectionT 线程安全的集合 2.集合的基本操作
(1)创建集合
使用默认的构造函数创建一个空集合,元素添加到集合之后,集合的容量就会扩大为4。当集合的容量被使用完,且还在向集合中添加元素时,集合的容量就会扩大成原来的2倍!可使用Capacity属性设置或访问集合的容量,使用Count属性访问集合的元素个数。也可使用TrimExcess方法调整集合容量,节省内存!
??? class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? Listint list = new Listint();//Listint list = new Listint(3)
??????????? for (int i = 0; i 1025; i++)
??????????? {
??????????????? if (list.Count == (list.Capacity))
??????????????? {
??????????????????? Console.WriteLine(容量使用量:+list.Count + / + list.Capacity);
??????????????? }
??????????????? list.Add(i);
??????????? }
??????????? Console.WriteLine(容量使用量: + list.Count + / + list.Capacity);
??????????? list.TrimExcess();//调整容量
??????????? Console.WriteLine(容量使用量: + list.Count + / + list.Capacity);
??????????? Console.Read();
??????? }
}
创建集合时可以为集合设置初始值,如下:
Listint list = new Listint() { 1,2,3,4,5,6,7,8,9,0};
Liststring list
您可能关注的文档
- 数据结构课程设计说明书1_副本.doc
- 第五章 arcengine之Geometry对象模型.docx
- 政治经济学第一讲习题.doc
- 在 ListView 及 FormView 控件中添加动态行为.doc
- 数据结构课程设计题目2012_副本.doc
- 第十一章 美金付款合同书-模板EN-ssb.doc
- 结构体变量及结构体数组.doc
- 第一章 001DOS可执行程序结构剖析.doc
- 使用Spring整合Hibernate及Struts.doc
- 第10讲 结构体、共用体、枚举类.doc
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
最近下载
- 上海牛津版小学英语三年级下册3B全册练习课时练试卷习题.pdf VIP
- 高中数学数列求和练习题(错位相减 + 裂项).docx
- 小学三年级心理健康教育辅导活动课件《困难像弹簧》.ppt VIP
- 面向2026年国际市场的跨境电商品牌推广方案.docx VIP
- 西南18J812_室外附属工程 标准图集.pdf VIP
- 高中物理运动学、牛顿力学、图像、能量.pdf VIP
- 2025年9月第42届全国中学生物理竞赛预赛试题(含答案及评分标准).pdf
- 高中物理运动学经典图像题.doc VIP
- 《基本中国拳法》简体中文.pdf VIP
- 基于核心素养的高中生物学课堂教学研究-来源:新课程(第2022016期)-山西三晋报刊传媒集团有限责任公司.pdf VIP
原创力文档

文档评论(0)