1.数组是定长的,在初始化时必须指定长度。例如:
int[] myArray = new int[4];
2.数组使用下标(或者叫脚标或索引)来访问数组中的元素。数组的下标从0开始,越界会发生异常。例如:myArray[-1]会引起越界异常。
3.二维数组
使用两个脚标确定元素的位置,第一个脚标可以理解为行,第二个脚标可以理解为列(注意行、列都是从0开始)例如twoDim2[1, 2]的值为6。
4.三维数组
使用三个脚标确定元素位置,可以理解为第几行第几列的第几个。例如threeDim2[1,1,0]对应的值为51。
二、集合
1.列表
(1)List<T>其中T为列表中的元素类型。例如List<string>,则表示这是个存储string类型的列表。
(2)列表的长度是可变的,其容量会随着元素个数的增多而自动的成倍增加。
(3)可以通过迭代或角标访问其中元素。脚标访问类似于数组,起始下标也从0开始。
迭代方式如下,可以输出列表中的1,2,3,:
List<int> list = new List<int>() {1,2,3 };
foreach(var item in list)
{
Console.WriteLine(item);
}
(4)列表中常用的操作
list.Add(4); //向列表中添加元素4,追加的元素会放在最后
list.Insert(0, 5); //插入方法,在0位置插入元素5,插入后列表变为5,1,2,3
list.Remove(2); //删除列表中值为2的元素
list.RemoveAt(0); //删除列表中脚标为0的元素,也就是第一个元素
list.Contains(4); //查询列表中是否包含4这个元素
list.Sort(); //列表排序
list.Reverse(); //逆转列表,原先的1,2,3变为3,2,1
2.队列
(1)队列Queue<T>是其元素以先进先出(FIFO)的方式来处理的集合。
(2)队列中常用的操作
Count: 获取队列中的元素个数
Peek:返回队列中的第一个元素,但是不将其移除
Enqueue:入队操作,添加一个元素至队尾
Dequeue:出队操作,返回队列中的第一个元素,将其移除
3.栈
(1)Stack<T>是其元素以后进先出(LIFO)的方式来处理的集合。
(2)栈中的常用操作
Count: 获取栈中元素个数
Peek:返回栈中开头的元素,但是不将其移除
Pop:出栈操作,返回开头元素,并将其移除
Push:入栈操作,将元素添加到栈顶
4.字典
(1)Dictionary<TKey, TValue>表示一种非常复杂的数据结构,它允许按照某个键来访问元素。字典也称为映射或散列。字典中的key不可重复。
(2)字典中的常用操作
Count: 获取集合中的元素个数
Keys:获取key的集合,可以迭代
Values:获取value的集合,可以迭代
Add: 向字典中添加元素(键值对)
Remove: 删除具有指定键的值
可以用key作为角标来获取/追加/设置value,例如:
Dictionary<int, int> dic = new Dictionary<int, int>();
dic.Add(0, 1);
dic.Add(1, 2);
dic[0] = 2; //修改值为2
dic[2] = 3; //添加新的键值对,相当于dic.add(2,3)
int number = dic[1];//获取key=1的值