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

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#中winform程序响应键盘事件的详解

    当一个winform程序运行时,用户可能会进行键盘输入操作。C#提供了键盘事件处理,使得我们能够简单地响应这些事件。在本文中,我们将学习如何在C#中处理键盘事件。 键盘事件 在C#中处理键盘事件,需要使用WindowsForms库提供的KeyPress, KeyUp和KeyDown事件。这些事件都继承自Control.KeyPressEventHandler…

    C# 2023年6月6日
    00
  • C#中按引用传递与按值传递的区别,以及ref与out关键字的用法详解

    C#中按引用传递与按值传递的区别 在C#中,方法参数可以按值传递或按引用传递。按值传递会将参数的实际值复制到方法中,而按引用传递则会将参数的引用(地址)复制到方法中。这两种传递方式的区别在于方法中对于参数的操作会不会影响到方法外部的参数值。 按值传递 按值传递的实参对应的是形式参数,两者是完全独立的。也就是说,方法内对参数的修改不会对方法外部的参数造成影响。…

    C# 2023年6月7日
    00
  • c#批量抓取免费代理并且验证有效性的实战教程

    C#批量抓取免费代理并且验证有效性的实战教程 代理服务器可以帮助我们解决一些访问问题,如境外IP访问等。但是,免费代理服务器资源不稳定,稳定的需要付费购买。本教程主要介绍如何使用C#语言进行批量抓取免费代理,并且验证代理有效性。 1. 获取免费代理网站 在开始之前,需要选择一个可靠的免费代理网站。以西刺代理网站为例,网址为:https://www.xicid…

    C# 2023年5月15日
    00
  • C#实现计算器功能(winform版)

    C#实现计算器功能(winform版)攻略 1. 创建WinForm程序 首先需要打开Visual Studio,创建一个新的WinForm项目。创建的时候需要给项目起个名字,比如”Calculator”。 2. 布局UI界面 布局UI界面需要使用到Visual Studio提供的设计器,拖动按钮、文本框等控件到界面上即可。 假设我们需要实现的计算器界面是一…

    C# 2023年6月7日
    00
  • C#实现WPS文件转PDF格式的方法示例

    下面是“C#实现WPS文件转PDF格式的方法示例”的完整攻略。 1. 引言 在现代的办公生活中,文件格式转换是必备的功能之一。实现文件转换的方式也有很多种,其中,利用C#编程实现WPS文件转PDF格式是一种常见的方式。 2. 程序分析 首先,我们需要通过C#代码打开wps文件,然后将其转换为PDF文件。实现此功能需要使用各种C#库和API,其中最常用的就是M…

    C# 2023年6月8日
    00
  • asp.net的加密解密技巧

    ASP.NET提供多种加密解密技巧,以下是完整攻略: 1. 加密解密技巧的用途 在网站应用开发过程中,为了保护关键数据的安全,必须采取加密措施,确保网站数据的机密性和完整性。ASP.NET提供了一系列加密技巧,可以对网站数据进行加密和解密,可以提高网站数据的安全性。 2. ASP.NET加密解密库 ASP.NET提供了内置的加密解密库,包括System.Se…

    C# 2023年6月3日
    00
  • C#使用Redis的基本操作

    C#使用Redis的基本操作 Redis是一个高性能键值数据库,和传统的Key-Value存储相比,它支持更多的数据结构,如: 字符串(String) 散列(Hash) 列表(List) 集合(Set) 有序集合(SortedSet) 在C#中,我们可以使用StackExchange.Redis库来操作Redis数据库。本篇文章将介绍C#使用Redis的基本…

    C# 2023年6月1日
    00
  • C#用递归算法解决八皇后问题

    C#是一门功能强大的编程语言,递归算法是其使用最为广泛的算法之一。在这里,我们将详细讲解如何使用C#递归算法解决八皇后问题。下面是我们的完整攻略: 什么是八皇后问题 八皇后问题是一个经典的问题,是将8个皇后放置在8×8的棋盘上,使得每个皇后都不能攻击其他皇后。即对于任意两个皇后,它们不能在同一行、同一列或同一对角线上。 思路分析 由于每行每列都只能放一个皇后…

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