首页 > 编程语言 >C#|Map (Dictionary)的用法

C#|Map (Dictionary)的用法

时间:2022-09-02 13:56:11浏览次数:48  
标签:Map Console Dictionary myDictionary C# Key WriteLine

在C#中想要使用Map时,发现没有Map,但是有替代方案,就是使用Dictionary。

Dictionary< string , string > hashMap = new Dictionary< string , string >();

说明:

  1. 必须包含名空间System.Collection.Generic
  2. Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)
  3. 键必须是唯一的.而值不需要唯一的
  4. 键和值都可以是任何类型(比如: string, int,自定义类型,等等)
  5. 通过一个键读取一个值的时间是接近O(1)
  6. 键值对之间的偏序可以不定义

C#代码:

//创建及初始化
Dictionary<int,string> myDictionary = new Dictionary<int,string>();
//添加元素
myDictionary.Add(1,"C#");
myDictionary.Add(2,"C++");
myDictionary.Add(3,"ASP.NET");
myDictionary.Add(4,"MVC");

//通过Key查找元素
if(myDictionary.ContainsKey(1))
{
    Console.WriteLine("Key:{0},Value:{1}","1", myDictionary[1]);
}
 //通过KeyValuePair遍历元素
foreach(KeyValuePair<int,string>kvp in myDictionary)
{
    Console.WriteLine("Key = {0}, Value = {1}",kvp.Key, kvp.Value);
}
//仅遍历键 Keys 属性
Dictionary<int,string>.KeyCollection keyCol=myDictionary.Keys;
foreach(intkeyinkeyCol)
{
    Console.WriteLine("Key = {0}", key);
}
//仅遍历值 Valus属性
Dictionary<int,string>.ValueCollection valueCol=myDictionary.Values;
foreach(stringvalueinvalueCol)
{
    Console.WriteLine("Value = {0}", value);
}
//通过Remove方法移除指定的键值
myDictionary.Remove(1);
if(myDictionary.ContainsKey(1))
{
  Console.WriteLine("Key:{0},Value:{1}","1", myDictionary[1]);
}
else
{
    Console.WriteLine("不存在 Key : 1"); 
 }

标签:Map,Console,Dictionary,myDictionary,C#,Key,WriteLine
From: https://www.cnblogs.com/tangjielin/p/16649605.html

相关文章

  • C#|遍历DataTable中的数据行
    在C#中的Datatable数据变量的操作过程中,有时候我们需要遍历DataTable变量获取每一行的数据值,例如将DataTable变量转换为List集合的时候,我们就会遍历DataTable变量,遍历DataT......
  • Mybatis-plus Page<>分页失效,records返回全部
     问题:分页失效    page 是传了的,但是还是返回了全部数据。 这里需要加一个config文件 importcom.baomidou.mybatisplus.annotation.DbType;import......
  • SpringCloud Alibaba 打包后在启动从Nacos读取配置文件失败
     SpringCloudAlibaba引用Nacos配置中心,读取数据源配置,在调试运行都正常,但是打包后在启动运行则会报错,提示读取配置失败巴拉巴拉。执行运行命令java-jar-Dserver.por......
  • 220902_leetcode 21. Merge Two Sorted Lists 合并两个有序链表(简单).md
    一、题目大意将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,......
  • 【Nginx运行报错】[alert] could not open error log file: CreateFile和 [emerg] 108
    第一个问题:[alert]couldnotopenerrorlogfile:CreateFile()“logs/error.log”failed(3:Thesystemcannotfindthepathspecified)(上文大致意思为)不能打开......
  • letcode算法--6.字符串转换整数 (atoi)
    请你来实现一个 myAtoi(strings) 函数,使其能将字符串转换成一个32位有符号整数(类似C/C++中的atoi函数)。函数 myAtoi(strings)的算法如下:读入字符串并丢弃无......
  • codeforces极简题解
    CF1713F利用lucas定理,\(b_S\)表示下标\(T\)与\(S\)无交的\(a_T\)的异或,由于部分\(b_S\)未知,不能直接iFWT。回顾容斥:\([S=\emptyset]=\sum_{T\subseteqS}(-1)^|T|\),\([n=0......
  • 开放容器倡议 | Open Container Initiative (OCI)
    开放容器倡议(OCI)是一个轻量级的开放治理结构(项目),在Linux基金会的主持下形成,其明确目的是围绕容器格式和运行时创建开放的行业标准。OCI于2015年6月22日由D......
  • C#|在List集合为NULL时需要添加数据的处理方法
    最近写了一个循环往字典的Value值添加数据的程序(字典的Value为一个List),经常碰到“Objectreferencenotsettoaninstanceofanobject”,就自己去了解了一下空集合和......
  • 【C++】断言、likely等
    断言assert就是对表达式进行判断,如果条件不成立就会调用abort()中止程序运行,对于debug空指针有奇效,但是release版本不会用是一个宏而非函数五个要点:1.在函数开始时,监测......