c# 中集合的用法


1. 概述

1.1数组的限制

  • 数组只能存储相同类型的数据
  • 数组不能动态的扩展长度

1.2集合的分类

C# 中的集合一般分为两种,泛型集合和非泛型集合,我一般非泛型集合用的比较少。主要用泛型集合


C# 中的集合主要有这么几种:

ArrayList 表示对象的数组,这些对象的大小会根据需要动态增加。
Hashtable 表示根据键的哈希代码进行组织的键/值对的集合。
Queue 表示对象的先进先出 (FIFO) 集合。
Stack 表示对象的后进先出 (LIFO) 集合。


2.非泛型集合


3.List<T> 泛型集合

特点:

  • 可通过索引访问的对象的强类型。

  • 是ArrayList类的泛型等效类。

  • 可以使用一个整数索引访问此集合中的元素;索引从 零 开始。

  • 可以接收null空引用(VB中的Nothing)。

  • 允许重复元素。



List<T>集合的方法:

  1. Add 将对象添加到 List 的结尾处。

  2. AddRange 将指定集合的元素添加到 List 的末尾。

  3. AsReadOnly 返回当前集合的只读 IList 包装。

  4. BinarySearch(T) 使用默认的比较器在整个已排序的 List 中搜索元素,并返回该元素从零开始的索引。

  5. BinarySearch(T, IComparer) 使用指定的比较器在整个已排序的 List 中搜索元素,并返回该元素从零开始的索引。

  6. BinarySearch(Int32, Int32, T, IComparer) 使用指定的比较器在已排序 List 的某个元素范围中搜索元素,并返回该元素从零开始的索引。

  7. Clear 从 List 中移除所有元素。

  8. Contains 确定某元素是否在 List 中。 (注意和Exists 做个区分)

  9. Exists 确定 List 是否包含与指定谓词所定义的条件相匹配的元素。

  10. ConvertAll 将当前 List 中的元素转换为另一种类型,并返回包含转换后的元素的列表。

  11. CopyTo(T[]) 将整个 List 复制到兼容的一维数组中,从目标数组的开头开始放置。

  12. Find 搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的第一个匹配 元素。

  13. FindIndex(Predicate) 搜索与指定谓词所定义的条件相匹配的元素,并返回整个List 中第一个匹配元素的从零开始的索引。

  14. ForEach 对 List 的每个元素执行指定操作。 GetEnumerator 返回循环访问 List 的枚举器。

  15. IndexOf(T) 搜索指定的对象,并返回整个 List 中第一个匹配项的从零开始的索引。

  16. Insert 将元素插入 List 的指定索引处。

  17. InsertRange 将集合中的某个元素插入 List 的指定索引处。

  18. LastIndexOf(T) 搜索指定的对象,并返回整个 List 中最后一个匹配项的从零开始的索引。

  19. Remove 从 List 中移除特定对象的第一个匹配项。

  20. Reverse() 将整个 List 中元素的顺序反转。

  21. 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

猜你喜欢

转载自blog.csdn.net/zhaozhao236/article/details/111148545