网站的运营和维护,外国网站界面,互联网公司注册,搜狗站长工具平台目录
一、动态数组ArrayList
二、List
三、栈#xff08;Stack#xff09;
四、队列#xff08;Queue#xff09;
五、字典#xff08;Dictionary#xff09;,int 一、动态数组ArrayList ArrayList 是 C# 中提供的一种动态数组类#xff0c;位于命名空间 Syste…目录
一、动态数组ArrayList
二、List
三、栈Stack
四、队列Queue
五、字典Dictionary,int 一、动态数组ArrayList ArrayList 是 C# 中提供的一种动态数组类位于命名空间 System.Collections 中。 动态数组ArrayList与普通数组不同它的大小可以动态调整无需预先定义固定长度。 动态数组ArrayList代表了可被单独索引的对象的有序集合它也允许在列表中进行动态内存分配、增加、搜索、排序各项。 ArrayList 类适用于需要频繁调整大小的数组操作但由于其非泛型特性在现代 C# 开发中逐渐被 ListT 替代。 具体来说ArrayList和List的区别在于ArrayList是一个非泛型集合List是一个泛型集合就是说ArrayList中可以存储任意类型的元素而List只能包含制定类型的元素。 性能方面List更好 现在在C#中一般常用的都是List了很少用到ArrayList ArrayList 类的方法和属性
下表列出了 ArrayList 类的一些常用的 属性
属性名称类型描述Countint获取 ArrayList 中包含的元素数量。Capacityint获取或设置 ArrayList 的容量存储空间。IsFixedSizebool指示 ArrayList 是否具有固定大小。IsReadOnlybool指示 ArrayList 是否为只读。IsSynchronizedbool指示 ArrayList 是否线程安全。SyncRootobject获取可用于同步访问的对象。
下表列出了 ArrayList 类的一些常用的 方法
方法名称返回类型描述添加与插入Add(object value)int将对象添加到 ArrayList 的末尾返回新元素的索引。AddRange(ICollection c)void将指定集合的所有元素添加到 ArrayList 的末尾。Insert(int index, object value)void在指定索引处插入对象。InsertRange(int index, ICollection c)void在指定索引处插入指定集合的所有元素。删除Remove(object value)void移除首次出现的指定对象。RemoveAt(int index)void移除指定索引处的元素。RemoveRange(int index, int count)void移除从指定索引开始的指定数量的元素。Clear()void移除所有元素。访问与查询Contains(object item)bool判断 ArrayList 是否包含指定对象。IndexOf(object value)int获取指定对象首次出现的索引。LastIndexOf(object value)int获取指定对象最后一次出现的索引。排序与复制Sort()void按照默认顺序排序 ArrayList 中的元素。Sort(IComparer comparer)void按照自定义比较器排序。Reverse()void反转 ArrayList 中元素的顺序。CopyTo(Array array)void将 ArrayList 的元素复制到指定数组中。其他GetRange(int index, int count)ArrayList获取从指定索引开始的指定数量的元素子集。ToArray()object[]将 ArrayList 中的元素复制到数组中。TrimToSize()void将容量调整为实际元素数量以节省内存。 static void Main(string[] args){ArrayList a new ArrayList();a.Add(ioio);a.Add(12);a.Add(58.2f);for(int i 0; i a.Count; i){Console.WriteLine(a[i]);}}
二、List
static void Main(string[] args){Listint a new Listint();//添加元素a.Add(12);a.Add(13);a.Add(15);a.Add(18);a.Add(2);shuchu(a);//删除元素13a.Remove(13);shuchu(a);//删除索引1a.RemoveAt(1);shuchu(a);//获得指定对象首次出现的索引Console.WriteLine(a.IndexOf(12));//获得指定对象最后一处出现的索引位置Console.WriteLine(a.LastIndexOf(12));}static void shuchu(Listint a){//遍历Listforeach(int i in a){Console.Write(i );}Console.WriteLine();}
三、栈Stack static void Main(string[] args){Stackint a new Stackint();//进栈a.Push(1);a.Push(2);a.Push(3);a.Push(4);a.Push(5);//输出shuchu(a);//出栈a.Pop();//输出shuchu(a);//返回栈顶元素Console.WriteLine(a.Peek());}static void shuchu(Stackint a){//遍历Listforeach(int i in a){Console.Write(i );}Console.WriteLine();}
四、队列Queue 在 C# 中Queue 是一个先进先出FIFO, First In First Out数据结构。 Queue 属于 System.Collections 或 System.Collections.Generic 命名空间分别提供非泛型和泛型版本的实现。Queue 适用于需要按照入队顺序处理数据的场景。 队列Queue代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时则使用队列。当您在列表中添加一项称为入队当您从列表中移除一项时称为出队。 特性 先进先出最早加入队列的元素最先被移除。动态大小队列的容量会根据需要动态调整。泛型支持通过 QueueT 可以存储强类型的元素。线程安全Queue 本身不是线程安全的但可以使用 ConcurrentQueueT 实现线程安全。 static void Main(string[] args){Queueint a new Queueint();//添加元素进入队列中a.Enqueue(1);a.Enqueue(2);a.Enqueue(3);a.Enqueue(4);a.Enqueue(5);//输出shuchu(a);//删除先进的a.Dequeue();//输出shuchu(a);//返回队列开头的元素Console.WriteLine(队列开头元素 a.Peek());//确定某个元素是否在队列中Console.WriteLine(a.Contains(13));//清空队列中的元素a.Clear();}static void shuchu(Queueint a){//遍历Listforeach(int i in a){Console.Write(i );}Console.WriteLine();}
五、字典Dictionarystring,int
static void Main(string[] args){Dictionarystring, int a new Dictionarystring, int();//向字典中添加元素a.Add(第一个键, 11);a.Add(第二个键, 2);a.Add(第三个键, 3);a.Add(第四个键, 4);a.Add(第五个键, 5);shuchu(a);//确定字典中是否含有指定的键Console.WriteLine(a.ContainsKey(第一个键));//确定字典中是否含有指定的值Console.WriteLine(a.ContainsValue(100));//将带有指定键的键值对给删除根据键删除a.Remove(第一个键);shuchu(a);//返回一个键的集合var key a.Keys;//同样的还可以返回一个值的集合方法是Valuesforeach(var i in key){Console.WriteLine(i);}}static void shuchu(Dictionarystring,int a){//遍历字典中的数据foreach(var d in a){Console.WriteLine(键d.Key 值 d.Value);}return;}