1、数组
数组在内存上连续分配的,而且数组中元素类型是一样的可以下标访问,数据读取快但增删慢,长度不变。
例如,
Console.WriteLine("***************Array******************");int[] intArray = new int[3];intArray[0] = 2020;string[] strArray = new string[] { "C/C++", "C#", "Java","Python" };//Arrayfor( int i=0;i2、ArrayList
ArrayList
是不定长的,内存上是连续分配的,其中元素没有类型限制,任何元素都是当成object
处理,如果是值类型,会有装箱操作。数据读取快但增删慢。例如,
Console.WriteLine("***************ArrayList******************");ArrayList arrayList = new ArrayList();arrayList.Add("wonhero");arrayList.Add("c#");arrayList.Add("c/++");arrayList.Add("java");arrayList.Add("python");arrayList.Add(2022);//add增加长度//arrayList[4] = 26;//修改数据,不会增加长度//删除数据//arrayList.RemoveAt(4);var value = arrayList[2];arrayList.RemoveAt(0);arrayList.Remove("c#");for( int i=0;i3、List
List
也是Array
,内存上都是连续摆放不定长;泛型使用保证类型安全,可以避免装箱拆箱,数据读取快但增删慢。例如,
Console.WriteLine("***************List******************");List intList = new List () { 1, 2, 3, 4 };intList.Add(2022);intList.Add(1314);//intList.Add("22");//intList[0] = 11;List stringList = new List ();//stringList[0] = "c#";//不能这样新增for( int i=0;i