红豆带你从零学C#系列之:使用集合组织相关数据
ArrayList(数组列表)
Why:如果一个公司有5名员工,一般我们会用长度为5的对象数组来存储信息,但要是有新员工来了,5个长度的数组就不够用了,因此我们需要一种能够根据需要自动分配容量的动态数组
What:类似于数组的数据存储容器,它的容量是可以动态分配和调整的,并且提供了一系列的方法对其中的元素进行增删改的操作
Where:例如要存储一组不确定的人员信息、一组分数、一组字符串、或者一组符号
How:
语法:ArrayList array = new ArrayList();
- 容量会根据需要自动拓展
- 根据索引下标获取里面的元素:array[0],array[1]
- 删除其中一个元素之后,后面的元素会往前移,索引位置也会重新调整
- 任意数据类型放入ArrayList之后都会变成object类型,如果要拿出来使用的话,就要转化成相应的数据类型
- 按照“先进先出”顺序存储
|
int |
Count |
返回ArrayList中实际包含的元素个数 |
|
void |
Add(Object value) |
将对象添加到ArrayList结尾处 |
|
void |
RemoveAt(int index) |
移除指定索引处的元素 |
|
void |
Remove(Object value) |
移除特定的对象 |
|
void |
Clear() |
从ArrayList中移除所有元素 |
HashTable(哈希表)
语法:HashTable hash = new HashTable();
- 哈希表每一个数据存放都是以“键/值对”的方式来进行的
- 哈希表不能通过索引下标访问元素,只能用foreach来访问
- 任意数据类型放入HashTable之后都会变成object类型,如果要拿出来使用的话,就要转化成相应的数据类型
- 按照“先进后出”的顺序存储
|
int |
Count |
返回ArrayList中实际包含的元素个数 |
|
void |
Add(Object key,Object value) |
将对象添加到HashTable结尾处 |
|
void |
Remove(Object value) |
移除特定的对象 |
|
void |
Clear() |
从HashTable中移除所有元素 |
课堂编程题:
做两个空方法,分别使用ArrayList和HashTable两个集合插入5名学生,添加完之后,都要删除“张三”这名学生,再删除集合里面最后一名学生,最后循环集合输出所有学生信息
最后把ArrayList和List<T> 、HashTable和Dictionary<K,V>进行代码互换,List<T>和Dictionary<K,V>集合的用法就该学会了。
List<T>泛型集合
语法:List<T> list = new List<T>();
- 容量会根据需要自动拓展
- 根据索引下标获取里面的元素:array[0],array[1]
- 删除其中一个元素之后,后面的元素会往前移,索引位置也会重新调整
- 按照“先进先出”顺序存储
Dictionary<K,V>泛型集合
语法:Dictionary<k,v> dict = new Dictionary<k,v>();
- 哈希表每一个数据存放都是以“键/值对”的方式来进行的
- 哈希表不能通过索引下标访问元素,只能用foreach来访问
- 按照“先进后出”的顺序存储
红豆带你从零学C#系列之:使用集合组织相关数据的更多相关文章
- 红豆带你从零学C#系列之——初识C#
问题一:什么是C#? C#是微软公司在2000年新推出的一款运行在.NET Framework平台上面的编程语言,这个.NET Framework平台又怎么去理解呢?举个例子来说好了,一个土著族人只会 ...
- 红豆带你从零学C#系列—Visual Studio工具介绍、下载和安装
一.Visual Studio的下载 Visual Studio(简称VS)是微软的一套完整的开发工具集,集成了能够开发并运行如C#.C++.VB.F#等程序的开发环境,目前最新的版本是Visual ...
- 红豆带你从零学C#系列之:初识继承与多态
继承 现实生活当中,人类又可以根据职业分为:教师,学生,理发师,售货员 又比如飞机又有种类之分:直升飞机.客机.货机.战斗机等 在程序里面我们可能会通过创建类来描述这样的事物,比如学生类.教师类.理发 ...
- 红豆带你从零学C#系列之:开始C#编程(二)
控制台程序开发之补充说明 你已经动手操作过我们上一篇文章中的控制台程序输入输出了吗朋友? 如果没有的话,强烈建议你先回去做一遍再来继续学习噢!上一篇文章地址:点击这里 一. 你问我答 问:代码是 ...
- 红豆带你从零学C#系列之:开始C#编程(一)
让我们开始学习C#编程吧 作者:红豆西米露 交流QQ:937802080 前面的文章里给大家介绍了C#语言的一些基本认识,现在我们来开始做一个小程序吧! 在这里以我们以“控制台应用程序”来作演示. P ...
- 带你从零学ReactNative开发跨平台App开发(二)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发(一)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发-[react native 仿boss直聘](十三)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- 带你从零学ReactNative开发跨平台App开发(十一)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
随机推荐
- SEO人员应该突破的5大思想误区
1.外链误区 很多人在做网站优化的时候容易陷入外链怪圈,认为外链就是网站优化的一切,只要做好外链排名就会上去,让他不做外链了他将不知道做什么.特别是外链专员和一些初级SEO人员,优化网站只知道到哪里发 ...
- SQLServer,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表xx中的标识列指定显式值
情景: 如果此表的主键或者其中有一个列使用了 IDENTITY(1,1) 自增长时,但又想手动为此列指定值时,当用如下解决方案: set identity_insert 表名 ON 使用此命令把表的 ...
- INPUT[type=file]的change事件不触发问题
在网页上要操作文件通常会使用INPUT[type=file]控件,但这个控件的设计很蛋疼.它不像其它编程语言中文件选择后会触发一个事件,只是让上面的文字改变,而这个改变可能会触发change事件而已. ...
- 清空DateTimePicker控件的好方法
[控件ID,不要加这个方括号].Format = DateTimePickerFormat.Custom; [控件ID,不要加这个方括号].CustomFormat = " "; ...
- asp.net 超链接 下载TEXT文件,而不是直接在IE中打开
问题描述:后台生成了文本文件,用超链接提供给用户下载.点击超链接,下载Excel文件没问题,但文本文件会直接被打开,而不是弹出下载窗口. 解决方法:把HyperLink改为LinkButton,在Cl ...
- 解决VS2010打开Web页面时经常由于内存较低而导致VS2010自动关闭的问题
在使用VS2010 开发Web应用程序的时候,经常打开一个Web页面进行编辑前台代码的时候要等待很久(甚至等了半天结果还挂掉,简直令人抓狂), 之前也在网上找了很多相关的方法,都没办法解决,今天无意中 ...
- Struts2 初体验
Sturts是一款优雅的,可扩展性很强的框架.它是由Struts开发团队和WebWord团队合作,共同开发的一个新的产品.新版本的Struts2 更加容易使用,更加接近Struts所追求的理念.从开发 ...
- VMWARE使用问题
因为一些原因创建的两个虚拟机出问题了,然而里面还放了好多东西呢不想就这样删掉,就抱着试一试的心态看能不能恢复(结果真能恢复). 这里使用的方法是VMware虚拟机配置文件(.vmx)损坏修复 在这过程 ...
- BZOJ 3875: [Ahoi2014]骑士游戏
d[i]表示消灭i所需的最小体力值, d[i] = min(S[i], K[i]+Σd[x]), Σd[x]表示普通攻击而产生的其他怪兽. 因为不是DAG, 所以用个队列类似SPFA来更新答案. -- ...
- tomcat异常
java.lang.UnsupportedClassVersionError: org/apache/lucene/store/Directory : Unsupported major.minor ...