首页 > 编程语言 >C# Dictionary(字典)的用法

C# Dictionary(字典)的用法

时间:2024-09-11 11:51:00浏览次数:11  
标签:Console Dictionary myDictionary C# Value WriteLine Key 字典

要使用Dictionary集合,需要导入C#泛型命名空间!
​System.Collections.Generic​(程序集:mscorlib)

Dictionary的描述

1、从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成

2、任何键都必须是唯一的

3、键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值

4、Key和Value可以是任何类型(string,int,custom class 等)

Dictionary常用用法:以 key 的类型为 int , value的类型为string 为例

1、创建及初始化

 Dictionary<int,string> myDictionary = new Dictionary<int,string>();

2、添加元素

myDictionary.Add(1,"C#");
myDictionary.Add(2,"C++");
myDictionary.Add(3,"ASP.NET");
myDictionary.Add(4,"MVC");

3、通过Key查找元素

if(myDictionary.ContainsKey(1)){
    Console.WriteLine("Key:{0},Value:{1}","1", myDictionary[1]);
 }

4、通过KeyValuePair遍历元素

foreach(KeyValuePair<int,string>kvp in myDictionary)
...{
        Console.WriteLine("Key = {0}, Value = {1}",kvp.Key, kvp.Value);
}

5、仅遍历键 Keys 属性

Dictionary<int,string>.KeyCollection keyCol=myDictionary.Keys;
foreach(intkeyinkeyCol)
...{
        Console.WriteLine("Key = {0}", key);
}

6、仅遍历值 Valus属性

Dictionary<int,string>.ValueCollection valueCol=myDictionary.Values;
foreach(stringvalueinvalueCol)
...{
        Console.WriteLine("Value = {0}", value);
}

7、通过Remove方法移除指定的键值

myDictionary.Remove(1);
if(myDictionary.ContainsKey(1))
...{
  Console.WriteLine("Key:{0},Value:{1}","1", myDictionary[1]);
}
else{
    Console.WriteLine("不存在 Key : 1"); 
 }

标签:Console,Dictionary,myDictionary,C#,Value,WriteLine,Key,字典
From: https://blog.csdn.net/weixin_51705943/article/details/141676693

相关文章

  • c#进度条实现方法
    在使用c#做WinFrom开发时,经常会用到进度条(ProgressBar)。那么如何才能实现winfrom进度条及进度信息提示呢?方法一:多线程使用c#做WinFrom开发,要实现进度条效果就需要用到多线程,如果不采用多线程控制进度条,窗口很容易假死(无法适时看到进度信息)1、设计界面需要引用usingSys......
  • rsync 学习笔记(一)编译
    一、背景 rsync二进制程序依赖外部库,由于安全问题,有时会单独升级依赖的外部库。另外为了防止因为栈溢出攻击导致服务器被黑,需要对rsync及其依赖的外部库重新编译,开启安全编译选项,增加黑客破解的复杂度。 所有的库编译必须要求加上如下编译选项:栈保护(-fstack-protector-al......
  • CTS2024
    水镜先考虑如何判定一个区间\([l,r]\)是否合法。首先肯定存在一个分割点\(mid\),使得\([l,mid]\)取\(\min(h_i,2L-h_i)\),\((mid,r]\)取\(\max(h_i,2L-h_i)\)。因此,记\(p_i=\max(h_i,2L-h_i)\),则\(p_i\)需要先不升,再不降,并且只能在转弯处有至多一对相等。考虑其反面,......
  • Invicti v24.9.0 发布下载,新增功能概览
    Invictiv24.9.0forWindows-Web应用程序安全测试InvictiStandardv24.9.0–10Sep2024请访问原文链接:https://sysin.org/blog/invicti/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgInvicti是一种自动化但完全可配置的Web应用程序安全扫描程序,使您能够......
  • Parallels Desktop 20 发布下载,macOS Sequoia 和 Windows 11 24H2 支持准备就绪
    ParallelsDesktopforMac20.0.0(build55653)-在Mac上运行WindowsmacOSSequoia和Windows1124H2支持准备就绪请访问原文链接:https://sysin.org/blog/parallels-desktop/,查看最新版。原创作品,转载请保出处。作者主页:sysin.org在Mac上运行Windows全新登场Pa......
  • [Linux] Microsoft Teams 无法进行屏幕分享
    在Ubuntu22.04中,MicrosoftTeams无法进行屏幕分享的问题可能与桌面环境中的屏幕共享集成缺失有关。运行以下命令可以解决这个问题:sudoaptinstallxdg-desktop-portal-gnomexdg-desktop-portalxdg-desktop-portal是一个通用的桌面门户服务,它提供了一组标准接口,允许沙盒......
  • 记一次Fidder Script自动修改包
    FiddlerScript的本质是用JScript.NET编写的一个脚本文件CustomRules.js但是它的语法很像C#但又有些不一样,比如不能使用@符号通过修改CustomRules.js可以灵活修改请求报文和响应报文,也无需中断程序。同时也可以利用它针对不同的URL做各种特殊处理。Fiddler安装时已经自带了Fidd......
  • 主流敏捷管理工具scrum工具推荐
    ​在当今的快速变化和高需求的业务环境中,敏捷开发已经成为许多企业实现快速迭代和响应市场需求的重要方法。而在众多敏捷工具中,选择适合自己团队的工具尤为重要。今天,我们将对比几款主流的敏捷工具,供参考1.Leangoo领歌:一站式敏捷研发管理工具在众多敏捷工具中,Leangoo领歌以其......
  • 通过scanner与用户交互
    用户交互scanner代码,使用Linepackagecom.scanner;importjava.util.Scanner;publicclassDemo01{publicstaticvoidmain(String[]args){//创建一个扫描器对象,用于接收键盘数据Scannerscanner=newScanner(System.in);System.out.......
  • 基于单片机设计的水平仪(STC589C52+MPU6050)
    一、前言【1】项目背景水平仪是一种常见的测量工具,用于检测物体或设备的水平姿态。在许多应用中,如建筑、制造和航空等领域,保持设备的水平姿态是非常重要的。为了实现实时的水平检测和显示,基于单片机设计的水平仪是一个常见的解决方案。数字水平仪是一种用于测量物体相对于水平面的......