c# 中集合的用法
1. 概述
1.1数组的限制
- 数组只能存储相同类型的数据
- 数组不能动态的扩展长度
1.2集合的分类
C# 中的集合一般分为两种,泛型集合和非泛型集合,我一般非泛型集合用的比较少。主要用泛型集合
C# 中的集合主要有这么几种:
ArrayList 表示对象的数组,这些对象的大小会根据需要动态增加。
Hashtable 表示根据键的哈希代码进行组织的键/值对的集合。
Queue 表示对象的先进先出 (FIFO) 集合。
Stack 表示对象的后进先出 (LIFO) 集合。
2.非泛型集合
3.List<T> 泛型集合
特点:
-
可通过索引访问的对象的强类型。
-
是ArrayList类的泛型等效类。
-
可以使用一个整数索引访问此集合中的元素;索引从 零 开始。
-
可以接收null空引用(VB中的Nothing)。
-
允许重复元素。
List<T>集合的方法:
-
Add 将对象添加到 List 的结尾处。
-
AddRange 将指定集合的元素添加到 List 的末尾。
-
AsReadOnly 返回当前集合的只读 IList 包装。
-
BinarySearch(T) 使用默认的比较器在整个已排序的 List 中搜索元素,并返回该元素从零开始的索引。
-
BinarySearch(T, IComparer) 使用指定的比较器在整个已排序的 List 中搜索元素,并返回该元素从零开始的索引。
-
BinarySearch(Int32, Int32, T, IComparer) 使用指定的比较器在已排序 List 的某个元素范围中搜索元素,并返回该元素从零开始的索引。
-
Clear 从 List 中移除所有元素。
-
Contains 确定某元素是否在 List 中。 (注意和Exists 做个区分)
-
Exists 确定 List 是否包含与指定谓词所定义的条件相匹配的元素。
-
ConvertAll 将当前 List 中的元素转换为另一种类型,并返回包含转换后的元素的列表。
-
CopyTo(T[]) 将整个 List 复制到兼容的一维数组中,从目标数组的开头开始放置。
-
Find 搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的第一个匹配 元素。
-
FindIndex(Predicate) 搜索与指定谓词所定义的条件相匹配的元素,并返回整个List 中第一个匹配元素的从零开始的索引。
-
ForEach 对 List 的每个元素执行指定操作。 GetEnumerator 返回循环访问 List 的枚举器。
-
IndexOf(T) 搜索指定的对象,并返回整个 List 中第一个匹配项的从零开始的索引。
-
Insert 将元素插入 List 的指定索引处。
-
InsertRange 将集合中的某个元素插入 List 的指定索引处。
-
LastIndexOf(T) 搜索指定的对象,并返回整个 List 中最后一个匹配项的从零开始的索引。
-
Remove 从 List 中移除特定对象的第一个匹配项。
-
Reverse() 将整个 List 中元素的顺序反转。
-
Sort() 使用默认比较器对整个 List 中的元素进行排序。
Contains 和 Exist 的区别
具体看参考文献【5】吧。
参考文献
[1] https://www.cnblogs.com/sujulin/p/7137938.html
[2] https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/collections
[3] https://blog.csdn.net/weixin_43914767/article/details/104569990?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.not_use_machine_learn_pai
[4] https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.generic.list-1?view=net-5.0
[5] https://www.cnblogs.com/xu-yi/archive/2019/06/23/11071148.html
[6]https://www.cnblogs.com/xu-yi/p/11026454.html