博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# Dictionary 简介
阅读量:7033 次
发布时间:2019-06-28

本文共 2027 字,大约阅读时间需要 6 分钟。

在C#中,Dictionary提供快速的基于兼职的元素查找。当你有很多元素的时候可以使用它。它包含在System.Collections.Generic名空间中。

在使用前,你必须声明它的键类型和值类型。

详细说明

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

创建和初始化一个Dictionary对象

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

添加键

static void Main(string[] args) 
  Dictionary<string, int=""> d = new Dictionary<string, int="">(); 
  d.Add("C#", 2); 
  d.Add("C", 0); 
  d.Add("C++", -1); 
}

查找键

static void Main(string[] args) 
   Dictionary<string, int=""> d = new Dictionary<string, int="">(); 
   d.Add("C#", 2); 
   d.Add("VB", 1); 
   d.Add("C", 0); 
   d.Add("C++", -1); 
   if (d.ContainsKey("VB")) // True 
   { 
      int p = d["VB"]; 
      Console.WriteLine(p); 
     }  
  
     if (d.ContainsKey("C")) 
     { 
       int p1 = d["C"]; 
       Console.WriteLine(p1); 
     } 
 } 

删除元素

static void Main(string[] args) 
   Dictionary<string, int=""> d = new Dictionary<string, int="">(); 
   d.Add("C#", 2); 
   d.Add("VB", 1); 
   d.Add("C", 0); 
   d.Add("C++", -1); 
  
   d.Remove("C");     
   d.Remove("VB"); 
 } 

使用ContainsValue查找值的存在

static void Main(string[] args) 
    Dictionary<string, int=""> d = new Dictionary<string, int="">(); 
    d.Add("C#", 2); 
    d.Add("VB", 1); 
    d.Add("C", 0); 
    d.Add("C++", -1); 
    if (d.ContainsValue(1)) 
    { 
        Console.WriteLine("VB"); 
    } 
    if (d.ContainsValue(2)) 
    { 
       Console.WriteLine("C#"); 
    } 
    if (d.ContainsValue(0)) 
    { 
       Console.WriteLine("C"); 
    } 
    if (d.ContainsValue(-1)) 
      { 
          Console.WriteLine("C++"); 
      }                
}

KeyNotFoundException

如果你尝试读取字典中一个不存在的键,那么你会得到一个KeyNotFoundException。所有在读取一个键之前,你必须先使用ContainKey来核对键是否存在字典中。

基于int键的Dictionary

static void Main(string[] args) 
   Dictionary<int, string=""> d = new Dictionary<int, string="">(); 
   d.Add(1000, "Planet"); 
   d.Add(2000, "Stars"); 
   // lookup the int in the dictionary. 
   if (d.ContainsKey(1000)) 
   { 
        Console.WriteLine(true); 
   } 
      Console.ReadLine(); 
排序字典SortedDictionary
在排序字典中,当添加元素时字典必须进行排序,所以插入的速度会比较慢点。但是因为元素是有序存储的,所以元素的查找可以使用二分搜索等一些效率更高的搜索。

http://www.cnblogs.com/ccczqh/archive/2011/01/04/1925852.html

转载于:https://www.cnblogs.com/xiao-hei/p/4118807.html

你可能感兴趣的文章
我的第一篇博客
查看>>
perl学习笔记——匹配模式
查看>>
分布式系统接口幂等性
查看>>
angularJS跳转返回刷新
查看>>
《Android 群英传》笔记-第二章 Android开发工具全接触
查看>>
Masonry整理
查看>>
世界之大,无不分层
查看>>
linux redhat5+11g
查看>>
centOS7 安装 JAVA环境
查看>>
测试博文
查看>>
Miller-Rabin随机性素数测试算法(Miller_Rabin模板)
查看>>
转eclipse failed to create the java virtual machine
查看>>
研究float的一些好文章
查看>>
我的友情链接
查看>>
TCP/IP(二) —— TCP 概述
查看>>
ROS-Indigo版在Ubuntu上的安装
查看>>
mysql使用笔记:数据类型
查看>>
Spark for Spatial,相关资源
查看>>
oracle数据导入导出
查看>>
Flask-RESTful构建小型REST服务
查看>>