C#中Dictionary泛型集合7种常见的用法

yizhihongxing

下面是"C#中Dictionary泛型集合7种常见的用法"的完整攻略:

1. 创建Dictionary对象

使用Dictionary之前,首先需要创建Dictionary对象。可以通过以下代码创建:

Dictionary<TKey, TValue> dict = new Dictionary<TKey, TValue>();

其中,TKey是键的类型,TValue是值的类型。

2. 添加键值对

向Dictionary中添加键值对可以使用Add方法:

dict.Add(key, value);

也可以使用索引器:

dict[key] = value;

3. 访问值

通过Dictionary中的键可以访问到相应的值:

TValue value = dict[key];

需要注意的是,如果键不存在,访问将会抛出异常。此时可以使用TryGetValue方法:

bool success = dict.TryGetValue(key, out TValue value);

4. 遍历Dictionary

可以通过foreach循环遍历Dictionary中的所有键值对,如下所示:

foreach (KeyValuePair<TKey, TValue> kvp in dict)
{
    TKey key = kvp.Key;
    TValue value = kvp.Value;
}

也可以遍历所有的键或值:

foreach (TKey key in dict.Keys)
{
    // do something with key
}

foreach (TValue value in dict.Values)
{
    // do something with value
}

5. 字典初始化器

可以使用C# 6.0中的字典初始化器简化添加操作:

Dictionary<string, int> dict = new Dictionary<string, int>()
{
    ["one"] = 1,
    ["two"] = 2,
    ["three"] = 3
};

6. LINQ查询

可以使用LINQ查询想要的键值对或者对键值对的值进行过滤、排序等操作,如下所示:

var query = from kvp in dict
            where kvp.Value > 10
            orderby kvp.Key
            select kvp;

foreach (KeyValuePair<TKey, TValue> kvp in query)
{
    TKey key = kvp.Key;
    TValue value = kvp.Value;
}

7. 转换为List

最后,可以将Dictionary转换为List进行多种操作:

List<KeyValuePair<TKey, TValue>> list = dict.ToList();

以上就是“C#中Dictionary泛型集合7种常见的用法”的完整攻略了。

下面给出两条示例说明:

示例1 前30个斐波那契数列

Dictionary <int,int> dict = new Dictionary<int,int>()
{
    [0] = 0,
    [1] = 1
};

for (int i = 2; i < 30; i++)
{
    int value = dict[i - 1] + dict[i - 2];
    dict[i] = value;
}

foreach (KeyValuePair<int, int> kvp in dict)
{
    Console.WriteLine("key:{0}, value:{1}", kvp.Key, kvp.Value);
}

输出结果:

key:0, value:0
key:1, value:1
key:2, value:1
key:3, value:2
key:4, value:3
key:5, value:5
key:6, value:8
key:7, value:13
key:8, value:21
key:9, value:34
key:10, value:55
key:11, value:89
key:12, value:144
key:13, value:233
key:14, value:377
key:15, value:610
key:16, value:987
key:17, value:1597
key:18, value:2584
key:19, value:4181
key:20, value:6765
key:21, value:10946
key:22, value:17711
key:23, value:28657
key:24, value:46368
key:25, value:75025
key:26, value:121393
key:27, value:196418
key:28, value:317811
key:29, value:514229

示例2 统计数组中每个元素的数量

int[] arr = { 1, 2, 3, 3, 4, 4, 4, 5 };
Dictionary<int, int> dict = new Dictionary<int, int>();

foreach (int i in arr)
{
    if (!dict.ContainsKey(i))
    {
        dict.Add(i, 1);
    }
    else
    {
        dict[i]++;
    }
}

foreach (KeyValuePair<int, int> kvp in dict)
{
    Console.WriteLine("key:{0}, count:{1}", kvp.Key, kvp.Value);
}

输出结果:

key:1, count:1
key:2, count:1
key:3, count:2
key:4, count:3
key:5, count:1

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中Dictionary泛型集合7种常见的用法 - Python技术站

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

相关文章

  • 提示出现unresolved external symbol _main的解决方法

    针对提示出现unresolved externalsymbol _main的解决方法,我们可以按照以下步骤进行操作: 1. 首先确定你的程序是C++程序还是C程序 在Visual Studio中,C++程序的入口点是main函数,而C程序的入口点是wmain函数。因此,如果你的程序是C++程序,那么你的main函数需要包含正确的参数列表,如下所示: int …

    C# 2023年5月15日
    00
  • C# 实现简易的串口监视上位机功能附源码下载

    下面是详细的讲解: 一、准备工作 在使用C#实现简易的串口监视上位机功能前,需要做一些准备工作:- 确定需要监视的串口号和波特率- 判断串口是否已打开,打开串口并设置参数- 创建事件处理函数,用于接收和解析串口数据 二、实现步骤 第一步、创建一个新的C#项目 打开Visual Studio,创建一个新的Windows Forms应用程序。 第二步、添加控件 …

    C# 2023年5月15日
    00
  • dotnet core链接mongodb代码实例

    接下来我将详细讲解使用dotnetcore链接mongodb的完整攻略,包括环境搭建、代码实现和示例展示等。 环境搭建 首先,我们需要安装 .NET Core SDK,MongoDB以及MongoDB的CSharp驱动程序。这里我以在Windows系统上搭建环境为例。 安装.NET Core SDK 在官方网站下载最新的.NET Core SDK,并按照提示…

    C# 2023年5月15日
    00
  • 基于SqlSugar的开发框架循序渐进介绍(28)– 快速构建系统参数管理界面

    在参照一些行业系统软件的时候,发现一个做的挺不错的系统功能-系统参数管理,相当于把任何一个基础的系统参数碎片化进行管理,每次可以读取一个值进行管理,这样有利于我们快速的处理业务需求,是一个挺好的功能。本篇随笔模拟这个功能,基于SqlSugar开发框架的基础上,利用代码生成工具快速生成系统参数管理界面和相关的业务类生成。 1、参考和具体实现的效果对比 参照的界…

    C# 2023年4月27日
    00
  • C#实现毫秒转换成时分秒的方法

    C#实现毫秒转换成时分秒的方法 当我们需要将毫秒转换成可读性更好的时分秒格式时,可以使用C#中提供的方法来进行实现。以下是完整的攻略过程: 1. 使用TimeSpan.FromMilliseconds()方法将毫秒转换成TimeSpan对象 我们可以使用C#中的TimeSpan.FromMilliseconds()方法将毫秒转换成TimeSpan对象,该方法…

    C# 2023年6月1日
    00
  • C#中一些你可能没用过的调试窗口的方法

    以下是C#中一些可能没用过的调试窗口的完整攻略。 1. 数据视图窗口 数据视图窗口用于查看和编辑调试器中的变量。在Visual Studio中打开调试器并在断点处暂停程序,可以通过选择“调试”选项卡下的“窗口”→“数据视图”打开数据视图窗口。此窗口列出当前可用的变量,允许开发人员查看和编辑这些变量的内容。另外,单击窗口顶部的“+”号,可以添加新的变量。 以下…

    C# 2023年6月6日
    00
  • 详细介绍.NET中的动态编译技术

    详细介绍.NET中的动态编译技术 动态编译技术是.NET框架中一项非常重要的功能,它可以让我们在运行时动态地编译和执行.NET代码,实现代码动态生成、代码热更新等功能。本文将详细介绍.NET中的动态编译技术,包括如何使用C#和VB.NET两种语言进行动态编译,以及如何执行动态编译后的代码。 使用C#进行动态编译 .NET中使用CSharpCodeProvid…

    C# 2023年5月31日
    00
  • C#获取数组中最大最小值的方法

    当我们需要在C#中获取数组中最大最小值时,有多种方法可以实现。下面是其中两种常用的方法: 方法一:使用LINQ拓展方法 使用LINQ拓展方法中的Max()和Min()可以方便地获取数组中的最大值和最小值。下面是获取最大值和最小值的示例代码: int[] array = { 10, 20, 30, 5, 15 }; int max = array.Max();…

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