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+ 索引访问更高效。

相关文章
|
1月前
|
JSON C# 数据格式
C# 实现简单的 HTTP 请求工具(POST 补充)
该代码实现了一个基于 HttpClient 的异步 HTTP POST 请求工具类,支持以 JSON 格式提交数据并反序列化响应结果,具备异常处理机制,适用于 .NET 环境下的轻量级网络请求操作。
|
SQL 存储 OLAP
适用于即席查询(Ad-Hoc)的OLAP引擎
即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,OLAP系统根据用户输入的查询条件实时返回查询结果。OLAP的即席查询与普通查询的不同之处就是很难对前者进行预先的优化,因为即席查询所响应的大都是随机性很强的查询请求。一个OLAP系统的即席查询能力越强,其应对不同用户的随机性和探索性分析的能力就越强。
784 0
适用于即席查询(Ad-Hoc)的OLAP引擎
|
4月前
|
存储 监控 安全
什么是技术架构、数据架构、业务架构、应用架构、产品架构和项目架构?
为何技术设计完善,项目仍推进艰难?根源在于架构认知缺失。本文系统解析业务、数据、应用、技术、产品、项目六大核心架构,揭示数字化建设的底层逻辑,助力跨部门协作与高效交付,实现技术价值最大化。
|
1月前
|
存储 算法 C#
C# 哈希值计算:MD5/SHA256 加密
本示例展示了C#中使用MD5和SHA256算法生成哈希值的方法,适用于密码加密与数据校验。MD5安全性较低,建议仅用于非敏感场景;密码存储推荐使用SHA256配合盐值以增强安全性。
|
1月前
|
C#
C# 随机数生成:Random 类用法
Random类用于生成伪随机数,适用于游戏、验证码、测试等场景。通过静态实例避免重复创建,确保随机性。提供整数、小数、布尔值及指定长度的随机字符串生成方法,使用简便且高效。注意需复用实例防止种子重复导致随机数相同。
|
1月前
|
JSON API C#
C# 实现简单的 HTTP 请求工具(GET/POST)
HTTP请求工具用于调用第三方API,支持GET和POST方法,实现数据获取与提交。示例代码展示通过HttpClient发送异步POST请求,处理响应并解析JSON结果,适用于高效集成外部服务。
|
1月前
|
C#
C# 实现发送邮件功能(SMTP)
通过SMTP协议实现邮件发送,支持文本与附件,需配置邮箱SMTP信息(如QQ邮箱授权码)。示例代码展示C#中如何使用SmtpClient发送邮件,适用于QQ、163、Gmail等主流邮箱服务。
|
1月前
|
JSON C# 数据格式
C# JSON 序列化与反序列化:Newtonsoft.Json 用法
JSON是前后端交互常用格式,Newtonsoft.Json(Json.NET)是C#中最流行的JSON处理库。本文介绍如何使用它实现对象与JSON字符串的序列化和反序列化,并提供封装工具类及调用示例,便于在项目中快速集成与使用。
|
1月前
|
存储 数据库连接 C#
C# 配置文件读取:App.config 用法
App.config用于存储程序配置(如数据库连接、接口地址),避免硬编码,提升可维护性。通过ConfigurationManager读取配置,支持字符串、整型、布尔值及连接字符串的获取,需引用System.Configuration程序集。
|
1月前
|
C# 图形学 Windows
C# 制作 Windows Forms 图形验证码(带干扰线)
WinForms图形验证码利用Graphics绘制字符、干扰线与噪点,支持刷新及随机颜色、旋转,增强防破解能力,提升安全性。