C# 集合

C# 中的集合类是专门用于存储和检索数据的类,并提供对堆栈、队列、列表和哈希表的支持。大多数集合类都实现相同的接口。

集合类有多种使用方式,例如为元素动态分配内存以及基于索引访问列表项。这些类创建 Object 类的对象集合,该类是 C# 中所有数据类型的基类。

C# 中的集合类型

System.Collections.Generic、System.Collections.Concurrent 和 System.Collections 命名空间中提供了许多集合类型,并且每种集合类型都有特定的用途。下面以System.Collection命名空间为例。如下表所示。

类型说明及使用
动态数组(ArrayList)动态数组表示可以单独索引的对象的有序集合。
动态数组与数组基本类似,唯一的区别是动态数组可以使用索引在指定位置添加和删除项目,并且动态数组本身的大小要更改为 。
此外,动态数组还允许在列表内进行动态内存分配、追加、搜索、排序等。
哈希表哈希表可以使用键访问集合中的元素。
哈希表中的每个项目都由一个键值对组成,该键用于访问集合中的特定项目。
排序列表(SortedList)排序列表是数组和哈希表的组合,允许您使用键或索引访问列表中的项目。
排序列表包含可以使用键或索引访问其项目的列表。如果要使用索引访问项目,则使用动态数组;如果要使用键访问项目,则使用哈希表。
此外,排序列表中的项目始终按键值排序。

(堆)

堆栈代表后进先出的对象集合。
当您需要对项目进行后进先出访问时,请使用堆栈。将项目添加到堆栈中称为压入项目,从堆栈中删除项目称为弹出项目。
大批队列代表先进先出的对象集合。
当需要先进先出访问项目时,使用队列。将项目添加到队列中称为入队,从队列中删除项目称为出队。
位数组点数组表示由 1 和 0 表示的二进制数组。
当您需要存储位,但您事先不知道确切的数字时,可以使用点数组。您可以使用从零开始的整数索引来访问点数组集合中的项目。

《C#宝典》通俗易懂的讲解!您必须观看的 2 个最佳视频

[Khóa học lập trình #C#_nâng_cao] – Bài 12: #ICollection trong C# | HowKteam
https://www.youtube.com/watch?v=r_5BA4yEM8E&pp=ygUbIEMj44Kz44Os44Kv44K344On44OzJmhsPUpB
C# 中的集合类是专门用于存储和检索数据的类,并提供对堆栈、队列、列表和哈希表的支持。大多数集合类都实现相同的接口。

集合类有多种使用方式,例如为元素动态分配内存以及基于索引访问列表项。这些类创建 Object 类的对象集合,该类是 C# 中所有数据类型的基类。

C# 中的集合类型

System.Collections.Generic、System.Collections.Concurrent 和 System.Collections 命名空间中提供了许多集合类型,并且每种集合类型都有特定的用途。下面以System.Collection命名空间为例。如下表所示。

类型说明及使用
动态数组(ArrayList)动态数组表示可以单独索引的对象的有序集合。
动态数组与数组基本类似,唯一的区别是动态数组可以使用索引在指定位置添加和删除项目,并且动态数组本身的大小要更改为 。
此外,动态数组还允许在列表内进行动态内存分配、追加、搜索、排序等。
哈希表哈希表可以使用键访问集合中的元素。
哈希表中的每个项目都由一个键值对组成,该键用于访问集合中的特定项目。
排序列表(SortedList)排序列表是数组和哈希表的组合,允许您使用键或索引访问列表中的项目。
排序列表包含可以使用键或索引访问其项目的列表。如果要使用索引访问项目,则使用动态数组;如果要使用键访问项目,则使用哈希表。
此外,排序列表中的项目始终按键值排序。

(堆)

堆栈代表后进先出的对象集合。
当您需要对项目进行后进先出访问时,请使用堆栈。将项目添加到堆栈中称为压入项目,从堆栈中删除项目称为弹出项目。
大批队列代表先进先出的对象集合。
当需要先进先出访问项目时,使用队列。将项目添加到队列中称为入队,从队列中删除项目称为出队。
位数组点数组表示由 1 和 0 表示的二进制数组。
当您需要存储位,但您事先不知道确切的数字时,可以使用点数组。您可以使用从零开始的整数索引来访问点数组集合中的项目。

《C#宝典》通俗易懂的讲解!您必须观看的 2 个最佳视频

[Khóa học lập trình #C#_nâng_cao] – Bài 12: #ICollection trong C# | HowKteam
https://www.youtube.com/watch?v=r_5BA4yEM8E&pp=ygUbIEMj44Kz44Os44Kv44K344On44OzJmhsPUpB