集合的概念
与数组相比,集合中的数据类型不必一定是相同的。并且集合不仅能随意调整大小,对存储和检索其中的对象也提供了更高级的方法。集合包括数组
常用的集合
集合 | 含义 |
Array | 数组 |
List | 列表 |
ArrayList | 动态数组 |
Dictionary | 字典 |
Queue | 队列 |
Stack | 栈 |
SortedList | 有序键/值对列表 |
Hashtable | 哈希表 |
LinkedList | 双向链表 |
SortedDictionary | 有序字典 |
动态数组类ArrayList
ArrayList是较复杂的数组。ArrayList类提供多数System.Collections类都提供的功能,但这些功能在Array类中没有提供。ArrayList并不等同于数组
Array | ArrayList |
大小固定 | 大小可根据需要自行扩充 |
一次只能设置或获取一个元素的值 | 允许添加,插入或移除某一范围的值 |
下限可以自定义 | 下限始终为0 |
可以具有多个维度 | 始终是一维的 |
位于System命名空间中 | 位于System.Collections命名空间中 |
创建动态数组类的形式
ArrayList 列表对象名 = new ArrayList(); ArrayList list = new ArrayList();
动态数组类常用的方法
arrayList.Clear(); //清空 arrayList.Contains(); //判断集合是否包含这个元素 int num = arrayList.Count; //集合中元素的个数 int number = arrayList.IndexOf(2); //找某一个元素对应的索引 arrayList.RemoveAt(); //移除索引对应的值 arrayList.Reverse(); //反转 arrayList.Sort(); //排序
练习
static void Main(string[] args) { //随机往集合中添加数据,添加10个,不能重复,再求和,求平均值 ArrayList arr = new ArrayList(); Random r = new Random(); while (arr.Count != 10) { int num = r.Next(1, 100); if (!arr.Contains(num)) { arr.Add(num); } } int sum = 0; for (int i = 0; i < arr.Count; i++) { if (arr[i] is int) { sum += (int)arr[i]; } Console.WriteLine(arr[i]); } Console.WriteLine(sum); Console.WriteLine(sum/arr.Count); Console.ReadKey(); }