C#中的 Dictionary常用操作

 更新时间:2025年03月06日 08:47:36   作者:追逐时光者  
C#中的Dictionary<TKey,TValue>是用于存储键值对集合的泛型类,允许通过键快速检索值,并且具有唯一键、动态大小和无序集合的特性,常用操作包括添加、访问、修改、删除元素,以及检查键或值是否存在,本文介绍C#中的 Dictionary常用操作,感兴趣的朋友一起看看吧

基本概念

Dictionary<TKey, TValue>是C#中用于存储键值对集合的泛型类,属于System.Collections.Generic命名空间。它允许使用键(Key)来访问与其关联的值(Value)。其中,TKey表示字典中键的类型,TValue表示字典中值的类型。

Dictionary的基本结构

  • 键(Key):唯一标识集合中的一个元素。键是唯一的,不能有重复。
  • 值(Value):与键相关联的数据。值可以是任意类型,并且可以有重复。
  • 键值对(KeyValuePair):键和值的组合,表示Dictionary中的一个元素。

Dictionary的主要特性

  • 快速访问:通过键可以快速检索到对应的值,平均时间复杂度接近O(1),因为Dictionary<TKey,TValue>类是作为哈希表实现。
  • 唯一键(Key):每个键在Dictionary中都是唯一的,不能重复。
  • 动态大小:Dictionary的大小可以动态调整,当元素数量超过容量时,它会自动扩容。
  • 无序集合:Dictionary中的元素是无序的,不能通过索引来访问它们。

Dictionary的常用操作

以下是C#中Dictionary的常用操作完整代码,其中包括添加元素、访问元素、修改元素、删除元素、检查键或值是否存在,以及遍历元素:

public static void DictionaryOperation()
{
    //创建一个Dictionary来存储学生学号ID和姓名
    Dictionary<int, string> studentDic = new Dictionary<int, string>();
    #region 添加元素
    // Add方法(键必须唯一)
    studentDic.Add(1, "大姚");
    studentDic.Add(2, "小袁");
    studentDic.Add(3, "Edwin");
    // 索引器语法(键不存在时添加,存在时更新)
    studentDic[4] = "Charlie";
    studentDic[5] = "追逐时光者";
    // 安全添加(避免异常)
    bool isAdded = studentDic.TryAdd(6, "小明"); // 返回 false,因键已存在
    #endregion
    #region 访问元素
    // 直接访问(键必须存在,否则会有异常)
    var currentUserName = studentDic[1];
    Console.WriteLine($"当前学生姓名: {currentUserName}");
    // 安全访问(避免异常)
    if (studentDic.TryGetValue(5, outvar getUserName))
    {
        Console.WriteLine($"UserName:{getUserName}");
    }
    else
    {
        Console.WriteLine("当前学生ID不存在");
    }
    #endregion
    #region
    // 修改元素
    studentDic[2] = "大西瓜";
    Console.WriteLine($"修改后的名称:{studentDic[2]}");
    #endregion
    #region 删除元素
    // 删除元素
    bool isRemoved = studentDic.Remove(3);
    Console.WriteLine($"删除结果:{isRemoved}");
    #endregion
    #region 检查键或值是否存在
    // 检查键是否存在
    if (studentDic.ContainsKey(1))
    {
        Console.WriteLine("存在");
    }
    else
    {
        Console.WriteLine("不存在");
    }
    bool isExistcontainsValue = studentDic.ContainsValue("追逐时光者");
    Console.WriteLine($"是否存在:{isExistcontainsValue}");
    #endregion
    #region 遍历元素
    // 遍历元素
    foreach (KeyValuePair<int, string> student in studentDic)
    {
        Console.WriteLine($"ID: {student.Key}, Name: {student.Value}");
    }
    // 使用键的枚举器
    foreach (var key in studentDic.Keys)
    {
        Console.WriteLine($"Key: {key}, Value: {studentDic[key]}");
    }
    // 使用值的枚举器
    foreach (varvaluein studentDic.Values)
    {
        // 注意:这种方式不能直接获取键,只能获取值
        Console.WriteLine($"Value: {value}");
    }
    #endregion
}

参考文章

到此这篇关于C#中的 Dictionary常用操作的文章就介绍到这了,更多相关C# Dictionary内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#日期转换函数分享

    C#日期转换函数分享

    这篇文章介绍了C#日期转换函数,有需要的朋友可以参考一下
    2013-10-10
  • C#反射实现插件式开发的过程详解

    C#反射实现插件式开发的过程详解

    插件式架构,一种全新的、开放性的、高扩展性的架构体系,插件式架构设计好处很多,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现,这篇文章主要介绍了C#反射实现插件式开发,需要的朋友可以参考下
    2023-09-09
  • 在Unity中实现动画的正反播放代码

    在Unity中实现动画的正反播放代码

    这篇文章主要介绍了在Unity中实现动画的正反播放代码,非常的实用,这里推荐给大家,希望大家能够喜欢。
    2015-03-03
  • C#实现餐饮管理系统

    C#实现餐饮管理系统

    这篇文章主要为大家详细介绍了C#实现餐饮管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C#字符串加密解密方法实例

    C#字符串加密解密方法实例

    这篇文章主要介绍了C#字符串加密解密方法,实例分析了C#对字符串加密与解密的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • c#中文转unicode字符示例分享

    c#中文转unicode字符示例分享

    本文介绍了中文转unicode字符的方法,还有UNICODE字符转为中文的方法,大家参考使用吧
    2014-01-01
  • c# 如何实现自动更新程序

    c# 如何实现自动更新程序

    这篇文章主要介绍了如何用c# 自动更新程序,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • Unity使用ScrollRect制作翻页

    Unity使用ScrollRect制作翻页

    这篇文章主要为大家详细介绍了Unity使用ScrollRect制作翻页,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C#使用 Salt + Hash 来为密码加密

    C#使用 Salt + Hash 来为密码加密

    本文主要介绍了几种常见的破解密码的方法,为密码加盐(Salt)以及在.NET中的实现等。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 基于C#实现的木马程序实例详解

    基于C#实现的木马程序实例详解

    这篇文章主要介绍了基于C#实现的木马程序实例,需要的朋友可以参考下
    2014-07-07

最新评论