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

下面是"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日

相关文章

  • WPF创建Prism应用程序

    WPF 创建 Prism 应用程序的完整攻略 Prism 是一个用于构建 XAML 应用程序的开源框架,它提供了一组工具和库,帮助开发人员构建可扩展、可重用和易于维护的应用程序。本攻略将介绍如何使用 Prism 创建 WPF 应用程序,并提供两个示例说明。 步骤 步骤1:创建 WPF 应用程序 首先,我们需要创建一个 WPF 应用程序。可以使用 Visual…

    C# 2023年5月17日
    00
  • 使用Lable控件输出九九乘法表

    使用Label控件输出九九乘法表有以下步骤: Step 1: 创建Label控件 首先,需要在程序中创建一个Label控件来显示九九乘法表的内容。在Python的Tkinter模块中,可以使用Label控件对应的类tk.Label来创建Label控件。以下示例中,我们创建一个名为text_label的Label控件,并将其添加到程序的主窗口中。 import…

    C# 2023年6月7日
    00
  • C#中的委托介绍

    C#中的委托(Delegate)是一种特殊的类,用来实现事件机制、回调函数和多播委托等功能。它可以看作是一个函数的引用,可以将方法作为参数传递给委托,从而达到动态的、可扩展的编程效果。 委托的定义 C#中定义委托需要使用关键字delegate,并且需要指定方法的参数列表和返回值类型。例如: delegate int DelegateFunc(int x, i…

    C# 2023年6月7日
    00
  • C# Quartzs定时器的使用教程

    C# Quartz定时器的使用教程 什么是Quartz定时器? Quartz是一个强大的开源企业级调度框架,主要用于执行任务、计划任务、调度和定时任务等等。C# Quartz定时器是基于Quartz开源调度框架在C#环境下进行开发、应用的框架,可以更容易地实现任务调度和自动化任务执行等功能。 C# Quartz定时器的主要特点包括: 支持多种任务调度模式 灵…

    C# 2023年6月1日
    00
  • C#中string.format用法详解

    下面是详细讲解“C#中string.format用法详解”的完整攻略。 1. string.format简介 C#中的字符串是由System.String类实现的,使用大量的内部标准函数。在C#中,可以使用多种方式来格式化字符串,使用C#中的string.format函数是其中一种。 string.format是一个静态方法,它可以将一个或多个对象的字符串表…

    C# 2023年6月1日
    00
  • 提供一个可以将DocX转为doc的文档转换器 地址

    首先需要明确的是,DocX是Word 2007以后版本才有的文件格式,而doc则是早期的版本格式,因此需要将DocX转换为doc格式的情况还是比较常见的。以下是一个可以将DocX转为doc的文档转换器的详细攻略。 1. 确定文档转换器类型 首先需要选择一个可以将DocX转为doc的文档转换器。当前比较常用的转换器有在线转换器和桌面软件两种,我们可以根据实际需…

    C# 2023年5月31日
    00
  • C#中实现任意List的全组合算法代码

    以下是详细的攻略步骤: 1. 确定算法 全组合算法可以用以下方式递归实现: 对于List的每个元素,有两种情况:选择与不选择 当选择了一个元素时,接下来需要从剩下的元素中选择 当不选择一个元素时,同样需要从剩下的元素中选择 递归执行以上步骤,直到剩下的元素集合为空,即为一种排列结果 这样,我们可以写出以下的伪代码。 // 全组合算法 public stati…

    C# 2023年6月1日
    00
  • 详解ASP.NET MVC之下拉框绑定四种方式

    下面我将详细讲解ASP.NET MVC下拉框绑定四种方式的完整攻略。 一、前置知识 在进行下拉框绑定前,需要了解 ASP.NET MVC 的 Razor 语法和 C# 语言基础,以及了解下拉框的 HTML 语法和 ASP.NET MVC 中的 ViewData 和 ViewBag 这两种传值方式。 二、下拉框绑定四种方式 通过 ViewBag 绑定下拉框 在…

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