首页 > 编程语言 >4-3-1.C# 数据容器 - Dictionary(Dictionary 的定义、Dictionary 元素的基本操作、Dictionary 元素的遍历、Dictionary 的常用方法)

4-3-1.C# 数据容器 - Dictionary(Dictionary 的定义、Dictionary 元素的基本操作、Dictionary 元素的遍历、Dictionary 的常用方法)

时间:2024-11-11 18:16:02浏览次数:3  
标签:Console Dictionary 元素 Alice ageDict Add WriteLine 基本操作

Dictionary 概述

  1. Dictionary<TKey, TValue> 存储的是键值对(Key - Value),通过键(Key)来存储或修改值(Value)

  2. Dictionary<TKey, TValue> 存储的键值对是无序的

  3. Dictionary<TKey, TValue> 存储的键是不可重复的

  4. Dictionary<TKey, TValue> 支持泛型,可以指定存储的键值对的类型

  5. Dictionary<TKey, TValue> 不是线程安全的,在多线程环境中需要谨慎使用


一、Dictionary 的定义

  1. 定义 Dictionary
Dictionary<string, int> ageDict = new Dictionary<string, int>();
  1. 定义 Dictionary 并填充一些元素
Dictionary<string, int> ageDict = new Dictionary<string, int>
{
    { "Alice", 30},
    { "Bob", 25}
};

二、Dictionary 元素的基本操作

1、Dictionary 元素的添加
  1. Dictionary 元素的添加(标准方式)
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);
  1. Dictionary 元素的添加(其他方式)
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict["Alice"] = 30;
ageDict["Bob"] = 25;
2、Dictionary 元素的访问
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);

Console.WriteLine(ageDict["Alice"]);
Console.WriteLine(ageDict["Bob"]);
# 输出结果

30
25
3、Dictionary 元素的修改
Dictionary<string, int> ageDict = new Dictionary<string, int>();
ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);

ageDict["Alice"] = 31;
ageDict["Bob"] = 26;

Console.WriteLine(ageDict["Alice"]);
Console.WriteLine(ageDict["Bob"]);
# 输出结果

31
26

三、Dictionary 元素的遍历

1、使用 for 循环遍历键值对
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);

foreach (KeyValuePair<string, int> kvp in ageDict)
{
    Console.WriteLine($"{kvp.Key} - {kvp.Value}");
}
# 输出结果

Alice - 30
Bob - 25
2、使用 for 循环遍历键
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);

foreach (string key in ageDict.Keys)
{
    Console.WriteLine(key);
}
# 输出结果

Alice
Bob
3、使用 for 循环遍历值
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);

foreach (int value in ageDict.Values)
{
    Console.WriteLine(value);
}
# 输出结果

30
25

四、Dictionary 的常用方法

1、Dictionary 元素的删除
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);

Console.WriteLine("删除元素之前");

foreach (KeyValuePair<string, int> kvp in ageDict)
{
    Console.WriteLine(kvp.Key);
    Console.WriteLine(kvp.Value);
}

Console.WriteLine("删除元素之后");

ageDict.Remove("Bob");

foreach (KeyValuePair<string, int> kvp in ageDict)
{
    Console.WriteLine(kvp.Key);
    Console.WriteLine(kvp.Value);
}
# 输出结果

删除元素之前
Alice
30
Bob
25
删除元素之后
Alice
30
2、Dictionary 元素的检测
  1. Dictionary 元素的检测(Key)
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);

Console.WriteLine(ageDict.ContainsKey("Alice"));
Console.WriteLine(ageDict.ContainsKey("Jack"));
# 输出结果

True
False
  1. Dictionary 元素的检测(Value)
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);

Console.WriteLine(ageDict.ContainsValue(20));
Console.WriteLine(ageDict.ContainsValue(25));
# 输出结果

False
True
3、Dictionary 大小的获取
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);

Console.WriteLine(ageDict.Count);
# 输出结果

2
4、Dictionary 元素的清空
Dictionary<string, int> ageDict = new Dictionary<string, int>();

ageDict.Add("Alice", 30);
ageDict.Add("Bob", 25);

Console.WriteLine("清空元素之前");

foreach (KeyValuePair<string, int> kvp in ageDict)
{
    Console.WriteLine(kvp.Key);
    Console.WriteLine(kvp.Value);
}

Console.WriteLine("清空元素之后");

ageDict.Clear();

foreach (KeyValuePair<string, int> kvp in ageDict)
{
    Console.WriteLine(kvp.Key);
    Console.WriteLine(kvp.Value);
}
# 输出结果

清空元素之前
Alice
30
Bob
25
清空元素之后

标签:Console,Dictionary,元素,Alice,ageDict,Add,WriteLine,基本操作
From: https://blog.csdn.net/weixin_52173250/article/details/143657996

相关文章

  • Hive的基本操作(附详细步骤和相关操作截图)
    Hive3.1.2概述与基本操作1、Hive基本概念1.1 Hive简介Hive本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据存储,说白了hive可以理解为一个将SQL转换为MapReduce的任务的工具,甚至更近一步说hive就是一个MapReduce客户端。面试题:什么是hive?1、hive是数据仓库建......
  • 代码随想录算法训练营第十一天 | 150. 逆波兰表达式求值+ 239. 滑动窗口最大值+347.前
    今天接着补上周末的栈与队列的part2,下午继续完成今天的任务。150.逆波兰表达式求值 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。注意:有效的算符为 '+'、'-'、'*' 和 '/' 。每个......
  • 力扣 第540题 有序数组中的单一元素
    解题思路:        因为解决方案必须满足`O(logn)`的时间复杂度,和`O(1)`的空间复杂度。所以我们首先考虑用二分查找的思想。这个问题的关键是找到我们要找的元素在左边还是右边的判断条件。        要找的元素在左边还是右边的判断条件是什么呢?题......
  • C小题目-输入10个数,要求输出其中值最大的元素和该数是第几个数
    #include<stdio.h>intmax(intx,inty){returnx>y?x:y;};intmain(){inta[10];inti,m,n;for(i=0;i<10;i++){printf("请输入第%d个数:",i);scanf("%d",&a[i]);};for(i=0,m=a[0],n=......
  • 【模板】如何实现链表元素的反转
    反转链表是链表操作中一个经典的问题,也是面试中常见的考题。本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作。我们将使用C++代码演示具体实现,同时分析时间复杂度和空间复杂度。问题定义给定一个单链表,我们需要将链表的节点顺序反转。例如,链表1......
  • Hive的基本操作用法
    一、Hive库操作1.创建数据库createdatabasebigdata32;标准写法:createdatabaseifnotexistsdatabases;(判断是否存在,无论存不存在都不会报错)2.创建数据库和位置createdatabasebigdata32_testlocation'/bigdata32ligang.db';3.修改数据库注意:数据库的其他元数据信......
  • 4-2-2.C# 数据容器 - HashSet 扩展(HashSet 集合操作、HashSet 存储对象的特性、HashSe
    HashSet概述HashSet<T>存储的元素是无序的HashSet<T>存储的元素是不可重复的HashSet<T>支持泛型,可以指定存储的元素的类型HashSet<T>不支持索引,不可以通过索引获取或修改元素HashSet<T>不是线程安全的,在多线程环境中需要谨慎使用一、HashSet集合操作1......
  • 4-2-2.C# 数据容器 - HashSet(HashSet 的定义、HashSet 元素的基本操作、HashSet 元素
    HashSet概述HashSet<T>存储的元素是无序的HashSet<T>存储的元素是不可重复的HashSet<T>支持泛型,可以指定存储的元素的类型HashSet<T>不支持索引,不可以通过索引获取或修改元素HashSet<T>不是线程安全的,在多线程环境中需要谨慎使用一、HashSet的定义定义......
  • 540. 有序数组中的单一元素
    文章目录问题描述解决思路代码示例复杂度分析问题描述给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足O(logn)时间复杂度和O(1)空间复杂度。解决思路题......
  • 3242. 设计相邻元素求和服务
    文章目录问题描述解决思路代码示例复杂度分析问题描述给你一个nxn的二维数组grid,它包含范围[0,n2-1]内的不重复元素。实现neighborSum类:neighborSum(int[][]grid)初始化对象。intadjacentSum(intvalue)返回在grid中与value相邻的元素之......