C# 温故而知新:数组 / Array / ArrayList / List
2018-02-13 12:41
441 查看
一. 数组
1. 数组 引用的命名空间是 using System;2. 其在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素的值也很简单。
//数组 string[] s=new string[2]; //赋值 s[0]="a"; s[1]="b"; //修改 s[1]="a1";
在数组中的两个数据间插入数据很麻烦,且在声明数组的时候必须指定数组的长度,数组的长度过长,会造成内存浪费,过短会造成数据溢出的错误。
二. Array
Array 就是 数组 的基类,其引用的命名空间是 using System。三. ArrayList
ArrayList 引用的命名空间是 System.Collections。1. 其在内存中存储的数据来动态扩充与收缩的,所以,在声明ArrayList对象时并不需要指定它的长度;
2. 在 ArrayList 中存储的是对象 object,故使用该类时必须进行引用,且允许插入不同类型的数据;
3. 同时继承了IList接口,提供了数据存储和检索等方法。
// 声明 ArrayList ArrayList arrayList1 = new ArrayList(); //新增数据 arrayList1.Add("cde"); arrayList1.Add(5678); //修改数据 arrayList1[2] = 34; //移除数据 arrayList1.RemoveAt(0); //插入数据 arrayList1.Insert(0, "qwe");
ArrayList 将其中的数据当作为object类型来处理,在进行数据增删改时,可能会因类型不匹配导致报错,也就是ArrayList不是类型安全的。在存储或检索值类型时因需要进行装箱和拆箱操作,导致性能耗损。
装箱:简单地说——将值类型的数据打包到引用类型的实例中:
// 装箱 示例 string s=”abc”; object obj=(object)s;
拆箱:简单地说——从引用数据中提取值:
// 拆箱 示例 object obj=”abc”; string i=(string)obj;
四. List | 泛型
1. List 引用的命名空间是 using System.Collections.Generic;2. List 类是 ArrayList 类的泛型等效类,其大部分用法与 ArrayList 相似,因为 List 也继承了 IList 接口;
3. 由于 List 需要事先声明集合内数据类型,因此其避免了装箱与拆箱动作,保证了性能的高效。
//声明 myList 为 List 泛型,并指定为 string 数据类型 List<string> myList = new List<string>(); //新增数据 myList.Add(“abc”); //修改数据 myList[0] = “def”; //移除数据 myList.RemoveAt(0);
相关文章推荐
- c# 数组(Array),ArrayList ,List 的区别与联系(摘录)
- C#数组之 []、List、Array、ArrayList应用
- c# 数组(Array),ArrayList ,List 的区别与联系
- C#中数组Array,ArrayList,泛型List详细对比
- C# 数组集合 <一>基本概念(Array&ArrayList&List<T>&SortList&LinkList的实现Code)
- 基础知识系列☞C#中数组Array、ArrayList和List三者的区别
- c# 数组(Array),ArrayList ,List 的区别与联系
- C#中的数组类型[],List,Array,ArrayList的区别
- C#中Array与ArrayList与泛型数组 list<>的区别
- C# 集合类 :(Array、 Arraylist、List、Hashtable、Dictionary、Stack、Queue)
- C#中数组、ArrayList和List三者的区别
- C# 集合类总结(Array,Arraylist,List,Hashtable,Dictionary,Stack,Queue)
- C#中数组、ArrayList和List三者的区别
- C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue
- C#中数组、ArrayList和List三者的区别
- C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue
- C# 没有动态的数组,可以用arraylist或list取代
- C#中数组、ArrayList和List三者的区别
- C# []、List、Array、ArrayList 区别及应用
- C#中数组、ArrayList和List三者的区别