C# 数组/集合/字典 区别

本文探讨了C#中Dictionary<string,string>的实用性和局限性,对比了其与类对象在参数接收及数据处理上的差异。通过实例展示了如何遍历集合字典项,以及集合操作如倒叙、赋值和添加的方法。
特性数组(Array)集合(List)字典(Dictionary<TKey, TValue>)
存储类型单一类型元素单一类型元素键值对(键唯一)
内存连续性连续内存连续内存(动态扩容)哈希表分散存储
访问速度O(1)O(1)平均 O(1)
插入/删除效率低(需移动元素)中间元素低,末尾高高(哈希表操作)
动态扩容不支持支持支持
适用场景固定数据、高频访问动态数据、频繁操作键值快速查找

主要其实就是从俩方面吧 

一方面是 数量确定的话可以用数组  动态的话 就考虑集合和字典

一方面是 操作上 需要快速查找的用字典  需要频繁添加排序遍历的就用集合

性能上来看,如果不是涉及到很大数据的情况下基本没差

核心区别对比

1. 数组(Array)​
  • 存储方式:固定长度、连续内存分配,元素类型必须一致

    性能

    • 访问速度极快​(O(1)),通过索引直接定位
    • 插入/删除效率低,需移动后续元素

  • 功能:仅支持索引操作,无动态扩容能力
  • 示例
    int[] numbers = new int[5] { 1, 2, 3, 4, 5 };
    Console.WriteLine(numbers[0]); // 输出:1
2. 集合(List)​
  • 存储方式:动态数组实现,支持泛型(类型安全),内存连续但可自动扩容
  • 性能
    • 随机访问快​(O(1)),但扩容时需复制数据(O(n))
    • 插入/删除中间元素较慢​(需移动元素)
  • 功能:提供增删改查、排序、查找等高级方法
  • 示例
    List<string> names = new List<string> { "Alice", "Bob" };
    names.Add("Charlie"); // 动态添加元素
3. 字典(Dictionary<TKey, TValue>)​
  • 存储方式:哈希表实现,键值对存储,键唯一且无序
  • 性能
    • 查找极快​(平均 O(1)),哈希冲突时可能退化为 O(n)
    • 内存占用较高​(需存储哈希表和键值对)
  • 功能:支持通过键快速访问值,提供唯一性校验和去重
  • 示例
    Dictionary<int, string> employees = new Dictionary<int, string>();
    employees.Add(101, "Alice");
    Console.WriteLine(employees[101]); // 输出:Alice

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值