博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# 数组和集合
阅读量:4307 次
发布时间:2019-06-06

本文共 2745 字,大约阅读时间需要 9 分钟。

数组是最为常见的一种结构,是相同类型的、用一个标识符封装到一起的j基本类型数据序列或对象序列,可以用一个统一的数组名和下标来唯一确定数组中的元素。实质上数组是一个简单的线性序列,因此数组访问起来很快。而集合可以看成一种特殊的数组,它也可以存储多个数据,C#中常用的集合包括ArrayList集合和 Hashtable (哈希表)
 
声明数组
int[] arr; 声明int形数组
string[] str;
为数组分配空间
arr = new int[5];
说明:使用new创建数组后,数组的所有元素初始值都是0
 
声明时候就创建数组
int[] month = new int[12];
 
数组初始化
int[] arr = new int[]{1,2,3,4,5};
int[] arr = {1,2,3,4,5};
 
二维数组
int [,] arr;
为数组分配空间
int[,] a = new int[2,4];
分别为每一维数组分配内存
int[][] a = new int[12][];
a[0] = new int[2];
a[1] = new int[3];
二维数组初始化
int[,] arr = new int[,] {
{12,1},{3,4}}
int[,] arr = {
{1,2},{3,4}};
 
遍历数组
foreach(val in arr) {}
 
添加数组元素
 
数组排序
Array.sort 对一维数组排序
Array.Reveerse 反转一维数组 最后一个元素变成第一个元素
 
 
 
ArrayList
ArrayList 类位于system.collections命名空间下,它可以动态的添加和删除元素,可以将array list类看作扩充了功能的数组,但他并不等于数组
  • 与数组相比 array list增加了
  • 数组容量可以需要自动扩充
  • array list提供了添加删除 和插入某一范围的方法
  • 提供了只读和固定大小包装返回到集合的方法
  • array list只能是一维数组
 
构造器
无参构造器
ArrayList a = new Arraylist();
传入一个collection
int[] arr = { 1,2,3,4};
ArrayList a = new ArrayList(arr);
指定大小初始化
ArrayList a = new Arraylist(32);
 
 
 
Insert
将元素插入到集合的指定处
arr.Insert(3,"aa"); 插入到位置3
 
 
Add
add允许null元素,并且允许重复元素
 
 
Clear
移除ArrayList 所有元素
 
Remove
移除特定值的第一个匹配项
arr.Remove(3);
 
RemoveAt
移除指定key的元素
arr.RemoveAt(3); key==3
 
RemoveRange
移除范围内的元素
arrRemoveRange(start,count);
 
 
Count
获取实际元素数
 
IsFiexedSize
获取一个值,判断是否有固定大小
 
IsReadOnly
获取一个值,判断是否只读
 
Item
获取或设置指定索引元素
 
 
 
public virtual int Capacity{get;set;}
获取或设置ArrayList可包含的元素数。
 
public virtual int Count{get;}
获取ArrayList中实际包含的元素数。
Capacity是ArrayList可以存储的元素数。Count是ArrayList中实际包含的元素数。Capacity总是大于或等于Count。如果在添加元素时,Count超过Capacity,则该列表的容量会通过自动重新分配内部数组加倍。
如果Capacity的值显式设置,则内部数组也需要重新分配以容纳指定的容量。如果Capacity被显式设置为0,则公共语言运行库将其设置为默认容量。默认容量为16。
在调用Clear后,Count为0,而此时Capacity却是默认容量16,而不是0
 
public virtual void TrimToSize();
将容量设置为ArrayList中元素的实际数量。
如果不向列表中添加新元素,则此方法可用于最小化列表的内存系统开销。
若要完全清除列表中的所有元素,请在调用TrimToSize之前调用Clear方法。截去空ArrayList会将ArrayList的容量设置为默认容量,而不是零。
 
 
ArrayList中的查找 可以用 Contains IndexOf LastIndexOf
 
public bool Contains(Object item);
用来确定某元素是否存在array list集合中 。
item :要在array list中查找的object,该值可以为空引用
返回值:如果找到 返回 true 否则 false
Console.WriteLine(a.Contains(3));
 
HashTable
hasttable 通常称为哈希表,表示 建/值对的集合,这些键值对根据建的哈希代码进行组织。每个元素都是一个存贮在DictionaryEntry对象中的键值对。建不可以为空引用,但是值可以.
 
初始化
public Hashtable();
无参数的初始化,默认加载因子 默认哈希代码提供程序和默认比较器来初始化
public Hashtable(int capacity);
使用指定容量来初始化
 
 
添加数据
Hashtable a = new Hashtable();
a.Add("id","bh001");
a.Add("name","tm");
a.Add("sex","man");
Console.WriteLine(a.Count);
 
遍历
foreach (DictionaryEntry d in a) {
Console.WriteLine("\t " + d.Key+"\t"+d.Value);
}
 
Clear
移除所有元素
 
Remove
删除指定的key
 
查找
可以使用Contains方法 ContainsKey ContainsValue 方法。
 
Contains
确定hashtable里面是否有特定的key
Console.WriteLine(a.Contains("name"));
 
ContainsValue
是否包含指定的值
Console.WriteLine(a.ContainsValue("tm"));
 
 
 
 
 
 
 
 

 

转载于:https://www.cnblogs.com/gwyy/p/8028858.html

你可能感兴趣的文章
vc获取特殊路径(SpecialFolder)
查看>>
单例模式
查看>>
int(3)和int(11)区别
查看>>
201521123061 《Java程序设计》第十一周学习总结
查看>>
代码小思考
查看>>
Unity中的销毁方法
查看>>
ceph删除pool提示(you must first set the mon_allow_pool_delete config option to true)解决办法...
查看>>
2016-7-15(1)使用gulp构建一个项目
查看>>
CSS 设计指南(第3版) 初读笔记
查看>>
markdown学习/mou
查看>>
CentOS 搭建 LAMP服务器
查看>>
看完此文再不懂区块链算我输,用Python从零开始创建区块链
查看>>
C/S框架-WebService架构用户凭证(令牌)解决方案
查看>>
UVA 11149.Power of Matrix-矩阵快速幂倍增
查看>>
ajax post 请求415\ 400 错误
查看>>
POJ 2696 计算表达式的值
查看>>
都江堰很美-佩服古人_Crmhf的一天
查看>>
Linux系统资源查询命令(cpu、io、mem)
查看>>
(转)PowerHA完全手册(一,二,三)
查看>>
hdu 4391 Paint The Wall 线段树 +优化 2012 Multi-University Training Contest 10 )
查看>>