C#集合之字典的用法

C#是一门强类型语言,拥有许多集合类型,字典(Dictionary)是其中最常用的之一。字典是一种键值对(Key-Value)的集合类型,可以通过键(key)快速地查找对应的值(value),同时也支持添加、删除、修改键值对等操作。

创建字典

在C#中创建字典可以使用Dictionary<TKey, TValue>类。TKey代表键的类型,TValue代表值的类型。下面是一个创建string类型键和int类型值的字典的示例代码:

Dictionary<string, int> dict = new Dictionary<string, int>();

添加键值对

可以使用Add()方法向字典中添加键值对:

dict.Add("apple", 1);

还可以使用索引器的方式添加键值对:

dict["banana"] = 2;

如果添加时出现键重复的情况,会抛出ArgumentException异常,可以使用ContainsKey()方法判断键是否已经存在于字典中。

删除键值对

可以使用Remove()方法删除键值对:

dict.Remove("apple");

还可以使用Clear()方法清空字典中所有的键值对。

获取键值对

可以通过键来获取对应的值,如果键不存在于字典中,会抛出KeyNotFoundException异常。可以使用TryGetValue()方法判断键是否存在:

bool contains = dict.TryGetValue("banana", out int value);

如果键存在于字典中,方法会将对应的值赋值给value变量并返回true,否则返回false

还可以使用foreach循环遍历字典中的键值对:

foreach(var kv in dict)
{
    Console.WriteLine("Key: {0}, Value: {1}", kv.Key, kv.Value);
}

示例1:使用字典统计单词出现次数

string str = "hello world, hello csharp";
string[] words = str.Split(' ');
Dictionary<string, int> dict = new Dictionary<string, int>();
foreach (string word in words)
{
    if (dict.ContainsKey(word))
    {
        dict[word]++;
    }
    else
    {
        dict.Add(word, 1);
    }
}
foreach (var kv in dict)
{
    Console.WriteLine("Word: {0}, Count: {1}", kv.Key, kv.Value);
}

输出结果:

Word: hello, Count: 2
Word: world,, Count: 1
Word: csharp, Count: 1

示例2:使用字典实现缓存

Dictionary<string, string> cache = new Dictionary<string, string>();
string GetResultFromDB(string key)
{
    // 从数据库获取结果
    return "";
}
string GetData(string key)
{
    if (cache.ContainsKey(key))
    {
        return cache[key];
    }
    else
    {
        string result = GetResultFromDB(key);
        cache.Add(key, result);
        return result;
    }
}

这个示例演示了如何使用字典实现一个简单的缓存功能,避免频繁访问数据库。在调用GetData()方法时,先检查缓存中是否存在对应的值,如果存在直接返回;否则从数据库中获取结果,并将结果添加到缓存中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#集合之字典的用法 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • 详解.Net core2.0日志组件Log4net、Nlog简单性能测试

    详解.Net core2.0日志组件Log4net、Nlog简单性能测试 在.NET Core 2.0应用程序中,日志记录是一个非常重要的组件。本攻略将深入探讨.NET Core 2.0中两个流行的日志组件Log4net和Nlog,并提供两个示例说明。 Log4net Log4net是一个流行的.NET日志记录组件,它提供了灵活的配置选项和高度可定制的输出格…

    C# 2023年5月17日
    00
  • 在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法

    在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法,主要分为两步: 引入dataTable插件 将数据添加到表格 以下为详细步骤: 1. 引入dataTable插件 首先在网页中引入jQuery库和dataTable插件。可以选择从官方网站下载,也可以通过CDN方式引入。 <!– 引入jQuery库 –> <s…

    C# 2023年5月31日
    00
  • C#如何优雅的对WinForm窗体应用程序进行权限控制

    C#中对WinForm窗体应用程序进行权限控制的优雅方法主要有以下几个步骤: 1. 创建用户登录界面 在用户打开程序时,首先需要提供一个登录窗口,将用户的账号和密码发送给服务器验证。可以使用WinForm中的TextBox、Label和Button等工具来创建这个窗口。 2. 向接口获取用户权限信息 用户登录成功后,需要将用户的身份信息发送给服务器来获取用户…

    C# 2023年5月31日
    00
  • C#取得随机颜色的方法

    C#取得随机颜色的方法 在开发中,有时候我们需要随机生成或选取颜色,可以使用下面两种方法来取得随机颜色。 方法一:使用 Random 类和 Color 类 我们可以使用 Random 类生成随机 R、G、B 值,并使用 Color 类将这些值组合成一个随机颜色。 示例代码如下: Random random = new Random(); Color colo…

    C# 2023年6月1日
    00
  • JS关键字球状旋转效果的实例代码

    JS关键字球状旋转效果的实例代码 JS关键字球状旋转效果是一种常见的Web前端效果,可以通过JavaScript和CSS实现。本文将提供详细的“JS关键字球状旋转效果的实例代码”的完整攻略,包括如何使用JavaScript和CSS实现关键字球状旋转效果,以及两个示例代码。 使用JavaScript和CSS实现关键字球状旋转效果 在使用JavaScript和C…

    C# 2023年5月15日
    00
  • Python 图片转数组,二进制互转操作

    让我们来详细讲解一下 “Python 图片转数组, 二进制互转操作” 的攻略。 什么是图片转数组? 在 Python 中,我们通常会将一幅图片转换为数组来进行进一步的处理,比如图像的特征提取、模式识别、人脸识别等。将一张图片转换为数组,我们可以获取每个像素点的 RGB 值、灰度值等信息,从而对图片进行更精细的操作。 图片转数组的操作步骤: 首先,我们需要用 …

    C# 2023年6月7日
    00
  • C# WinForm国际化实现的简单方法

    那么下面我来详细讲解一下“C# WinForm国际化实现的简单方法”。 什么是国际化 国际化(Internationalization),简称I18N,指将软件(尤其是在开发过程中)设计成可同时支持多种语言和字符集的技术。通俗点说,国际化就是将我们的程序在不同地区、不同语言下也能够顺利运行,显示相应的语言文本和界面信息。 WinForm国际化实现的简单方法 …

    C# 2023年6月6日
    00
  • C#使用Oracle.ManagedDataAccess.dll组件连接Oracle数据库

    C#使用Oracle.ManagedDataAccess.dll组件连接Oracle数据库 准备工作 安装Oracle数据库 下载Oracle.ManagedDataAccess.dll组件 可以在Oracle官网下载,或者在NuGet包管理器中搜索“Oracle.ManagedDataAccess”进行下载 步骤说明 在项目中添加Oracle.Manage…

    C# 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部