当前位置: 首页 > news >正文

C# 中常用集合以及使用场景

1. 数组 (Array)

  • 特点‌:固定大小、内存连续、访问速度快
  • 使用场景‌:
    • 需要高性能的固定大小集合
    • 数值计算(如矩阵运算)
    • 存储已知长度的数据(如配置文件参数)

2. List<T>

  • 特点‌:动态数组、自动扩容、支持索引访问
  • 使用场景‌:
    • 需要频繁增删的集合(比数组更灵活)
    • 数据缓存(如从数据库读取的记录集)
    • 需要 LINQ 操作的场景

3. Dictionary<TKey, TValue>

  • 特点‌:键值对、哈希表实现、快速查找
  • 使用场景‌:
    • 需要快速通过键查找值(如缓存系统)
    • 配置项存储(如键值对配置)
    • 数据分组统计

4. HashSet<T>

  • 特点‌:唯一性保证、高性能集合运算
  • 使用场景‌:
    • 去重操作(如日志去重)
    • 集合运算(并集、交集等)
    • 快速判断元素是否存在

5. Queue<T>

  • 特点‌:先进先出 (FIFO)
  • 使用场景‌:
    • 任务队列(如后台任务处理)
    • 消息队列模拟
    • 广度优先搜索 (BFS) 算法

6. Stack<T>

  • 特点‌:后进先出 (LIFO)
  • 使用场景‌:
    • 撤销操作(如文本编辑器撤销栈)
    • 深度优先搜索 (DFS) 算法
    • 表达式求值(如括号匹配)

7. LinkedList<T>

  • 特点‌:双向链表、高效插入/删除
  • 使用场景‌:
    • 频繁在中间插入/删除的场景
    • 实现 LRU 缓存
    • 需要前后遍历的集合

8. ObservableCollection<T>

  • 特点‌:数据变更通知(实现 INotifyCollectionChanged)
  • 使用场景‌:
    • WPF/Silverlight 数据绑定
    • 需要实时更新 UI 的集合

9. SortedDictionary/SortedList<TKey, TValue>

  • 特点‌:按键排序的字典
  • 使用场景‌:
    • 需要按键排序的键值对
    • 范围查询(如查找 10~20 之间的键)

10. Concurrent Collections(线程安全集合)

  • 包含类型‌:
    • ConcurrentBag<T>(无序集合)
    • ConcurrentQueue<T>
    • ConcurrentStack<T>
    • ConcurrentDictionary<TKey, TValue>
  • 使用场景‌:
    • 多线程环境下的共享集合
    • 并行计算任务分配
http://www.xdnf.cn/news/1273897.html

相关文章:

  • 服务器硬件电路设计之 I2C 问答(三):I2C 总线上可以接多少个设备?如何保证数据的准确性?
  • Redis如何实现一个分布式锁?
  • ubuntu22.04安装autoware.universe
  • 进度、质量、安全的关系随笔
  • scala 样例类
  • 计算机视觉(CV)——图像相关基本概念
  • #C语言——刷题攻略:牛客编程入门训练(八):分支控制(二)
  • 7、西门子PLC基础术语:数据单位、存储区域、寻址方式、字节序
  • scanpy单细胞转录组python教程(二):单样本数据分析之数据质控
  • Spring Boot 开发三板斧:POM 依赖、注解与配置管理
  • 第三章 向量
  • 锂电池SOH预测 | 第35讲 Matlab基于BiLSTM的锂电池健康状态估计(锂电池SOH预测),附锂电池最新文章汇集
  • Python高阶
  • spring-boot-starter-data-redis 与 org.redisson 区别 联系
  • vue如何监听localstorage
  • 嵌入式开发学习(第三阶段第四天 Linux系统开发)
  • 复现论文《基于深度强化学习的微能源网能量管理与优化策略研究》
  • 【渲染流水线】[几何阶段]-[归一化NDC]以UnityURP为例
  • 【每天一个知识点】深度领域对抗神经网络
  • WPFC#超市管理系统(5)商品布局、顾客登录、商品下单
  • 【C++详解】红黑树规则讲解与模拟实现(内附红黑树插入操作思维导图)
  • ES 调优帖:Gateway 批量写入性能优化实践
  • C语言基础05——指针
  • 计算机视觉全景指南:从OpenCV预处理到YOLOv8实战,解锁多模态AI时代(第五章)
  • MVC结构变种——第三章核心视图及控制器的整体逻辑
  • 机器学习——TF-IDF 衡量词语在文档中重要程度
  • Java 日常开发笔记(小程序页面交互传参-id)
  • ​LabVIEW键盘鼠标监控
  • 分享一个基于Python和Hadoop的的电信客户特征可视化分析平台 基于Spark平台的电信客服数据存储与处理系统源码
  • 【Python练习】086. 编写一个函数,实现简单的DHCP服务器功能