C# 字典(Dictionary):键值对存储的高效用法

简介: `Dictionary<TKey, TValue>` 是键唯一且支持快速查找(O(1))的键值对集合,适用于存储映射关系。可通过 `Add` 添加、`TryGetValue` 安全获取、`Remove` 删除元素,遍历使用 `foreach`,建议优先使用 `TryGetValue` 提升性能。

Dictionary<TKey, TValue> 是键值对集合,通过键快速查找值(时间复杂度 O (1)),适合存储映射关系(如配置、缓存)。

public class DictionaryDemo
{
    public static void UseDictionary()
    {
        // 初始化字典(键:用户ID,值:用户名)
        Dictionary<int, string> userDict = new Dictionary<int, string>
        {
            {1, "张三"},
            {2, "李四"},
            {3, "王五"}
        };
        // 新增键值对
        userDict.Add(4, "赵六");
        // 查找值(通过键)
        if (userDict.TryGetValue(2, out string userName))
        {
            Console.WriteLine("ID=2的用户:" + userName); // 输出:李四
        }
        // 遍历字典
        Console.WriteLine("\n所有用户:");
        foreach (var item in userDict)
        {
            Console.WriteLine($"ID:{item.Key},姓名:{item.Value}");
        }
        // 修改值
        userDict[3] = "王五(已更新)";
        // 删除键值对
        userDict.Remove(4);
        // 检查键是否存在
        bool hasId1 = userDict.ContainsKey(1);
        Console.WriteLine("\n是否包含ID=1:" + hasId1); // True
    }
}
// 调用示例
DictionaryDemo.UseDictionary();

注意:字典的键必须唯一,否则会抛出异常;TryGetValueContainsKey+ 索引访问更高效。

相关文章
|
SQL 存储 OLAP
适用于即席查询(Ad-Hoc)的OLAP引擎
即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,OLAP系统根据用户输入的查询条件实时返回查询结果。OLAP的即席查询与普通查询的不同之处就是很难对前者进行预先的优化,因为即席查询所响应的大都是随机性很强的查询请求。一个OLAP系统的即席查询能力越强,其应对不同用户的随机性和探索性分析的能力就越强。
1004 0
适用于即席查询(Ad-Hoc)的OLAP引擎
|
网络协议
ip 地址哪些是保留地址?
ip 地址哪些是保留地址?
7246 1
|
6月前
|
JSON C# 数据格式
C# 实现简单的 HTTP 请求工具(POST 补充)
该代码实现了一个基于 HttpClient 的异步 HTTP POST 请求工具类,支持以 JSON 格式提交数据并反序列化响应结果,具备异常处理机制,适用于 .NET 环境下的轻量级网络请求操作。
|
5月前
|
监控 数据可视化 应用服务中间件
ELK 搭建实战:从 0 到 1 打通日志收集、分析与可视化
ELK日志分析平台实战指南 本文针对分布式系统日志管理痛点,详细介绍了ELK(Elasticsearch+Logstash+Kibana)开源日志分析平台的搭建与使用。文章从ELK三大组件的核心原理入手,包括Elasticsearch的倒排索引机制、Logstash的数据管道处理流程和Kibana的可视化功能。重点讲解了单机版ELK的环境准备、安装配置步骤,以及Nginx日志收集分析的具体实现方案。通过实战案例展示了如何创建索引模式、制作可视化图表和仪表盘。
1177 1
|
6月前
|
存储 算法 C#
C# 哈希值计算:MD5/SHA256 加密
本示例展示了C#中使用MD5和SHA256算法生成哈希值的方法,适用于密码加密与数据校验。MD5安全性较低,建议仅用于非敏感场景;密码存储推荐使用SHA256配合盐值以增强安全性。
|
6月前
|
C#
C# 随机数生成:Random 类用法
Random类用于生成伪随机数,适用于游戏、验证码、测试等场景。通过静态实例避免重复创建,确保随机性。提供整数、小数、布尔值及指定长度的随机字符串生成方法,使用简便且高效。注意需复用实例防止种子重复导致随机数相同。
IPv4内网与公网地址范围
本文介绍了内网和公网IPv4地址的范围及用途。内网IP(私有地址)包括10.0.0.0/8、172.16.0.0/12和192.168.0.0/16,分别适用于大型、中型和小型网络。公网IP分为A、B、C类,分别支持大规模、中等规模和小规模网络;D类用于多播通信,E类保留实验用途。此外,127.0.0.0/8为环回地址,不用于公网。这些划分确保了IP地址的有效利用与网络通信的正常进行。
6110 10
|
6月前
|
网络协议 安全 C#
C# 实现基于 TCP 的简单聊天程序(服务端)
基于TcpListener实现TCP聊天服务器,监听指定端口,接收客户端连接并实时转发消息。支持多客户端并发通信,新连接自动加入广播列表,断开后自动移除,确保线程安全与稳定运行。
|
6月前
|
C#
C# 实现简单的 AOP(面向切面编程)
通过反射与委托实现AOP,可在方法执行前后动态添加日志、计时等横切逻辑,提升代码复用性与可维护性。
|
6月前
|
算法 C#
C# 实现字符串相似度计算(Levenshtein 算法)
介绍计算字符串编辑距离的算法,基于Levenshtein距离实现相似度分析,适用于搜索建议与拼写纠错,附C#代码示例。

热门文章

最新文章