C# 集合(动态数组(ArrayList),哈希表(Hashtable),排列列表(SortedList),堆栈(Stack),队列(Queue)),泛型(Generic)

本文介绍了C#中的集合类,包括动态数组ArrayList、哈希表Hashtable、排列列表SortedList、堆栈Stack和队列Queue的属性和方法。此外,还详细阐述了泛型(Generic)的概念、特性及其在C#中的应用,包括泛型集合的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合(Collection)

集合类是专门用于数据存储和检索的类。这些类提供了对栈,队列、列表和哈希表的支持。大多数集合类实现了相同的接口。
集合类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等。这些类创建Object类的对象的集合。在C#中,Object类是所有数据类型的基类。

常用的集合类

在这里插入图片描述

动态数组(ArrayList)

动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。

ArrayList类常用的属性

在这里插入图片描述

ArrayList类常用的方法

在这里插入图片描述

            ArrayList list = new ArrayList();
            list.Add("12");
            Console.WriteLine(list.Capacity);
            Console.WriteLine(list.Count);
            Console.WriteLine(list[0]);
            list.AddRange(new int[] { 2, 3, 5,0 });
            Console.WriteLine(list.Count);
            Console.WriteLine(list.Contains(12));
            list.Remove("12");
            Console.WriteLine(list.Count);
            list.RemoveAt(0);
            Console.WriteLine(list.Count);
            Console.WriteLine(list.Capacity);
            list.TrimToSize();
            Console.WriteLine(list.Capacity);
            list.Clear();
            Console.WriteLine(list.Count);

哈希表(Hashtable)

它使用键来访问集合中的元素。当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。

Hashtable类常用的属性

在这里插入图片描述

Hashtable类常用的方法

在这里插入图片描述

  Hashtable table = new Hashtable();
            table.Add(1,"张三");
            table.Add(2, "李四");
            table.Add("1", "张三");
            //声明了一个int作为键类型,string作为值类型的键值对集合
            Dictionary<int, string> list = new Dictionary<int, string>();
            list.Add(1,"zs");
            foreach (DictionaryEntry item in table)
            {
                Console.WriteLine(item.Key+":"+item.Value);
            }

排列列表(SortedList)

SortedList类常用的属性

在这里插入图片描述

SortedList类常用的方法

在这里插入图片描述## 标题

堆栈(Stack)

它代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。

Stack 类常用的属性

在这里插入图片描述

Stack 类常用的方法

在这里插入图片描述

            Stack ts = new Stack();
            ts.Push("张三");
            ts.Push("李四");
            ts.Push("张三");
            ts.Push("王五");
            foreach (var item in ts)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine(ts.Peek());
            Console.WriteLine(ts.Count);
            Console.WriteLine(ts.Pop());
            Console.WriteLine(ts.Peek());
            Console.WriteLine(ts.Count);

队列(Queue)

它代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。

Queue 类常用的属性

在这里插入图片描述

Queue 类常用的方法

在这里插入图片描述

Queue queue = new Queue();
            queue.Enqueue("asd");
            queue.Enqueue("zhangsan");
            queue.Enqueue("lisi");
            queue.Enqueue("王五");
            foreach (var item in queue)
            {
                Console.WriteLine(item);
            }
            queue.Dequeue();
            Console.WriteLine(queue.Count);
            foreach (var item in queue)
            {
                Console.WriteLine(item);
            }

泛型(Generic)

泛型(Generic)允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。

泛型(Generic)的特性

1.它有助于您最大限度地重用代码、保护类型的安全以及提高性能。
2.您可以创建泛型集合类。.NET 框架类库在 System.Collections.Generic命名空间中包含了一些新的泛型集合类。您可以使用这些泛型集合类来替代 System.Collections 中的集合类。
3.您可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托。
4. 您可以对泛型类进行约束以访问特定数据类型的方法。
5.关于泛型数据类型中使用的类型的信息可在运行时通过使用反射获取。

泛型集合常用方法

在这里插入图片描述

 List<string> list = new List<string>();
            list.Add("zs");
            list.Add("ls");
            list.Add("ww");
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine(list[2]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值