C# 泛型字典 Dictionary的使用详解

yizhihongxing

C# 泛型字典 Dictionary的使用详解

C#中的泛型字典Dictionary,是将键和值进行映射的一种数据结构。Dictionary在C#编程中非常常用,因为它支持高效的键值查找,非常适用于存储一组数据,并且能够快速根据键名找到对应的值。

基本语法

Dictionary属于System.Collections.Generic命名空间,所以要使用Dictionary,需要在程序的开头添加以下代码行:

using System.Collections.Generic;

定义Dictionary的基本语法如下:

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

其中TKey表示键的数据类型,TValue表示值的数据类型。

添加元素

使用Add()方法向Dictionary中添加元素,Add()方法的参数分别为键和值。

Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary.Add("apple", 1);
dictionary.Add("banana", 2);
dictionary.Add("orange", 3);

访问元素

可以使用Dictionary的索引器来访问元素,索引器参数为键。

int value = dictionary["apple"];

如果键不存在,会抛出KeyNotFoundException异常。

还可以使用TryGetValue()方法来访问元素,TryGetValue()方法的第一个参数为键,第二个参数为键对应的值。如果键不存在,方法会返回false。

int value;
if (dictionary.TryGetValue("apple", out value))
{
    Console.WriteLine(value);
}
else
{
    Console.WriteLine("key not found");
}

遍历元素

使用foreach语句遍历Dictionary中的元素,代码示例如下:

foreach (KeyValuePair<string, int> pair in dictionary)
{
    Console.WriteLine("{0}:{1}", pair.Key, pair.Value);
}

示例1:统计单词出现次数

以下示例演示如何使用Dictionary来统计一个字符串中单词出现的次数:

string str = "apple banana apple orange orange banana apple";
string[] words = str.Split(' ');
Dictionary<string, int> dictionary = new Dictionary<string, int>();
foreach (string word in words)
{
    if (dictionary.ContainsKey(word))
    {
        dictionary[word]++;
    }
    else
    {
        dictionary.Add(word, 1);
    }
}
foreach (KeyValuePair<string, int> pair in dictionary)
{
    Console.WriteLine("{0}:{1}", pair.Key, pair.Value);
}

示例2:统计学生成绩

以下示例演示如何使用Dictionary来统计学生成绩:

Dictionary<string, int> scores = new Dictionary<string, int>();
scores.Add("Tom", 90);
scores.Add("Jerry", 80);
scores.Add("Alice", 70);
scores.Add("Bob", 60);
int totalScore = 0;
foreach (KeyValuePair<string, int> pair in scores)
{
    totalScore += pair.Value;
}
double averageScore = (double)totalScore / scores.Count;
Console.WriteLine("平均分:{0}", averageScore);

以上就是C#泛型字典Dictionary的使用详解及示例。更多有关C#的进阶内容,可以参考其他教程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 泛型字典 Dictionary的使用详解 - Python技术站

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

相关文章

  • C#多线程的相关操作讲解

    C#多线程的相关操作讲解 在 C# 中,可以通过多线程机制来使一个程序同时执行多个任务,更好地利用计算资源,提高程序的效率和性能。本篇文章将针对 C# 多线程相关操作进行详细讲解,内容包括线程的创建、启动、停止,线程同步和互斥,以及线程池等多方面。 一、线程的创建和启动 C# 中可以使用 Thread 类来创建和启动线程。Thread 构造函数有两个重载形式…

    C# 2023年5月15日
    00
  • Entity Framework Core基于数据模型创建数据库

    Entity Framework Core是一个跨平台对象关系映射(ORM)框架,可以方便地将数据持久化到关系数据库中。本攻略将介绍如何使用Entity Framework Core基于数据模型来创建数据库。 1. 创建数据模型 在使用EF Core创建数据库之前,你需要首先定义一个数据模型。数据模型定义了数据库中的表和列,以及它们之间的关系。在EF Cor…

    C# 2023年6月3日
    00
  • 浅谈static a[n*m]={0};中static的作用

    我们来详细讲解一下在C/C++中,声明静态数组时使用static关键字的作用。 首先,我们需要明确一下,在C/C++中,静态数组有以下两种声明方式: 通过在函数中声明静态数组 void myFunction(){ static int arr[10] = {0}; // do something with arr } 在文件的全局作用域中声明静态数组 sta…

    C# 2023年5月15日
    00
  • .net如何使用Cache框架给程序添加Cache

    使用Cache框架可以加速程序的响应速度,提高程序的性能。在.NET中,使用Cache框架很简单,本文将介绍如何使用Cache框架给程序添加Cache。 1. 创建和配置Cache对象 在.NET中,使用System.Web.Caching.Cache类来创建和配置Cache对象。创建Cache对象有多种方式,可以使用全局的HttpRuntime.Cache…

    C# 2023年6月3日
    00
  • C#通过经纬度计算2个点之间距离的实现代码

    计算两个点之间的距离通常使用地理坐标系中的经纬度作为计算的基础。下面是C#实现经纬度计算距离的完整攻略: 步骤一:确定计算方法 在地图中,经纬度之间的直线距离可以使用大圆距离公式(Haversine formula)计算。该公式将两点之间的直线距离表示为球面距离,考虑地球的尺寸与弧度的转换,计算公式如下: dist = 2R * arcsin(sqrt(si…

    C# 2023年5月31日
    00
  • asp.net中的check与uncheck关键字用法解析

    让我们详细讲解一下“asp.net中的check与uncheck关键字用法解析”。 什么是check与uncheck关键字? 在C#中,check与uncheck是两个关键字,主要用于控制整数运算的溢出。check表示启用溢出检查,uncheck表示禁用溢出检查。 为什么需要check与uncheck关键字? 在C#中,整数类型默认是不启用溢出检查的,这就意…

    C# 2023年6月8日
    00
  • C#中字段、属性、只读、构造函数赋值、反射赋值的问题

    C#中包含多种方式来定义和初始化数据,主要有字段、属性、只读字段、以及构造函数和反射进行初始化的方式。这些方式有着不同的取值方式和赋值方式,本文将详细讲解这些问题,帮助开发者深入了解这些方式的差异。 字段 字段是最常见和最基本的一种数据定义方式,它是用来保存数据的一个变量。在C#中,字段一般包含访问修饰符、数据类型、以及一个标识符。在初始化时可以直接进行初始…

    C# 2023年5月15日
    00
  • C#使用SqlServer作为日志数据库的设计与实现

    C#使用SqlServer作为日志数据库的设计与实现,可以采用以下步骤: 1. 创建数据库表格 首先在SqlServer中创建一个数据库,并在其中创建一个用于存储日志的表格。例如: create table LogInfo( ID int identity(1,1) primary key, LogContent nvarchar(4000) not nul…

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