对IEnumerableT,IDictionaryTkey,TValue,ICollectionT,IListT的总结
1、IEnumerable<T>接口和IEnumerable接口
实现了IEnumerable接口的集合表明该集合能够提供一个enumerator(枚举器)对象,支持当前的遍历集合。IEnumerable接口只有一个成员GetEnumerator()方法。
IEnumerator接口实现了IEnumerator接口的集合实现了从一个元素到另一个元素向前移动的方法,同时也可以随时返回初始处。
IEnumerator接口是只读的。
包括以下三个成员
MoveNext()方法调整遍历指针移向集合的下一个元素。注意,遍历指针的初始位置是集合中第一个元素的前面。要指向第一个元素,必须先调用一次MoveNext()方法。该方法返回一个布尔值,如果成功遍历到下一个元素,则返回true;如果指针移出末尾,则返回false。
Reset()方法用于设置遍历指针指向初始位置,即集合中第一个元素的前面。
Current属性返回集合中当前对象的引用。
2、ICollection<T>接口和ICollection接口
该接口是IEnumerable接口的子接口,定义了集合的大小、IEnumerator接口和同步方法。在IEnumerable接口的基础上增加了以下功能。
Count;该属性返回集合中元素的数目。
CopyTo(Array array, int index);该方法用于实现从集合中拷贝元素到一个一维数组中。
3、IList接口和IList<T>接口
ILIst接口包括以下方法和属性
Add()和Insert()方法用于向集合中添加条目,使用索引来指定项目要插入的位置,其中首元素的索引为0;Add()将新条目添加到尾部。
Remove()和RemoveAt()用于从列表中删除条目。Clear()用于删除所有条目。
IndexOf和Contains()用于搜索该列表。
this属性用于获取或设置索引指定的值。C#中可以使用[]运算符进行访问
IList<T>接口
ArrayList类
ArrayList类实际上是C#中的”动态数组”。数组在new创建后,其大小(Length)是不能改变的,而ArrayList中的数组元素的个数(Count)是可以改变的,元素可以加入及移出。
4、IDictionary<Tkey,Tvalue>接口IDictionary
IDictionary接口提供了一组”关键字/值”的集合,Hashtable是IDictonary的一个重要实现。
IDictionary接口是一个包含一组”关键字/值”对的数据结构,每个值都由相应的关键字来定义。关键字和值可以是任何数据类型,关键字必须唯一且非空。
Add()方法添加一个指定的关键字和值的条目到IDictionary接口。
this属性检索指定关键字所对应的值。
Keys和Values属性分别返回包含所有关键字和值的集合。
Remove()用于删除指定关键字对应的条目。Clear()用于删除所有条目。
GetEnumator()返回一个IDictionaryEnumerator,可用于遍历IDictionary接口。
IDictionaryEnumerator接口
IDictionaryEnumerator接口基于IEnumerator接口,可以使用Entry属性检索当前条目的关键字和值,或者使用Key和Value属性分别检索。Entry属性返回一个DictionaryEntry对象。
DictionaryEntry是一个值类型,包含Key和Value两个字段,每个字段都是一个对象引用。s
Hashtable类
Hashtable(哈希表)表示一个关键字和值相关联的集合,它的组织方式能够高效地检索其中的值。
HashMap和Hashtable及HashSet的区别
http://www.blogjava.net/fisher/archive/2006/12/13/87398.html
转载于:https://www.cnblogs.com/huangmeimujin/archive/2012/03/26/2417523.html
对IEnumerableT,IDictionaryTkey,TValue,ICollectionT,IListT的总结相关推荐
- Entity Framework中使用IEnumerableT、IQueryableT及IListT的区别
1. IEnumerable<T> IEnumerable<T> :对于在内存中集合上运行的方法,返回的可枚举对象将捕获传递到方法的参数.在枚举该对象时,将使用查询运算符的逻辑 ...
- SortedDictionaryTKey, TValue 类 表示根据键进行排序的键/值对的集合。
SortedDictionary<TKey, TValue> 类 表示根据键进行排序的键/值对的集合. SortedDictionary<TKey, TValue> 中的每 ...
- Dictionary (Of (TKey, TValue)) Class Example
自从第一天接触到泛型.就对泛型产生了一种特殊的感觉.就像是一见钟情. 因此ArrayList 就被我无情地抛弃了,怎么感觉像是在写小说啊,呵呵- 言归正传 就在刚才在做一个自定义控件(具体说来就是这个 ...
- C#编程(五十三)----------字典DictionaryTKey,TValue
字典 关键字:Dicitionary 说明: 必须包含命名空间System.Collection.Generic Dictionary里面的每一个元素都是一个键值对(由两个元组组成:键和值). 键必须 ...
- [C#]泛型与非泛型集合类的区别及使用例程,包括ArrayList,Hashtable,ListT,DictionaryTkey,Tvalue,SortedListTkey,Tvalue,...
今天有空正好把泛型和非泛型集合类写了一个比较,并做了个的例程,可以比较清楚的理解它们概念和使用方法. 泛型与非泛型集合类在C#程序中是非常重要的一个基础概念,这里列一个表来进行对比: 非泛型集合类 泛 ...
- SortedDictionaryTKey,TValue正序与反序排序及Dicttionary相关
SortedDictionary<TKey,TValue>能对字典排序 using System; using System.Collections.Generic; using Syst ...
- lua 5.3.5 TValue::tt_和GCObject::tt之间的爱恨纠葛
目录 前言 1 TValue::tt_ 和 GCObject::tt 1.1 TValue 1.1.1 Actual tag 1.1.2 Variant tag 1.1.3 collectable t ...
- .net源码分析 – DictionaryTKey, TValue
接上篇:.net源码分析 – List<T> Dictionary<TKey, TValue>源码地址:https://github.com/dotnet/corefx/blo ...
- KeyValuePairTKey, TValue是DictionaryEntry的泛型版本
如同Dictionary<TKey, TValue>是HashTable的泛型版本一样,KeyValuePair<TKey, TValue>是DictionaryEntry的泛 ...
最新文章
- 报错笔记:打开软件出现您缺少mfco42d.dll和msvcrtd.dl库文件
- 一致性设计,而不是一致性
- 函数指针数组指针+结构体数组
- java队列 notify_java使用线程做一个消息队列,wait,notify
- C# dataGridView控件 左上角加string
- EasyRecovery注册码哪里有?
- Web安全工具大汇聚
- 数模转换器ADC0832使用原理及控制程序
- win10便签常驻桌面_win10技巧分享第六篇——win10自带的备忘录便签功能
- Pixelmator Pro比肩Photoshop,专业的图像处理软件,是真的吗?
- 获取PC 服务器 可用的GPU
- reboot无法进入grub开机选单
- #JAVA# JAVA简易版计算器GUI编程练习
- Mybatis中if判断遇到的坑
- 遥感影像识别-成像合成
- K_A11_008 基于STM32等单片机驱动SHT30和SHT31 串口与OLED0.96双显示
- 安装activemq或者tomcat等启动时报错
- java-php-python-ssm计算机专业招聘网站计算机毕业设计
- 金和C6V2.6硬件狗解除。密钥制作。
- 天猫智慧门店探索:大数据驱动的品牌零售赋能
热门文章
- nfvo通过调用哪个接口实现对vnf生命周期的管理_Spring-Bean生命周期
- Python+Opencv实现自动化阅卷
- 【边缘检测】RCN:Object Contour and Edge Detection with RefineContourNet
- 介绍神经网络_神经网络介绍
- 数据库主从不同步_数据从不说什么
- redshift教程_分析和可视化Amazon Redshift数据—教程
- 参加动画电影《魔比斯环》首映
- 《环形女人》:“穿透”与“征兆”(全文)
- 如何正确入门Windows系统下驱动开发领域?
- MySQL和mq一致性,Mysql与Redis一致性问题