C# Dictionary已知value获取对应的key

1:循环遍历法,分为遍历key-value键值对和遍历所有key两种形式

2:使用Linq查询法

 1     private void GetDictKeyByValue()
 2     {
 3         Dictionary<int, string> dict = new Dictionary<int, string>();
 4         dict.Add(1, "1");
 5         dict.Add(2, "2");
 6         dict.Add(3, "2");
 7         dict.Add(4, "4");
 8
 9         // foreach KeyValuePair
10         List<int> list = new List<int>();
11         foreach (KeyValuePair<int, string> kvp in dict)
12         {
13             if (kvp.Value.Equals("2"))
14             {
15                 list.Add(kvp.Key); // kvp.Key;
16             }
17         }
18
19         // foreach dic.Keys
20         list.Clear();
21         foreach (int key in dict.Keys)
22         {
23             if (dict[key].Equals("2"))
24             {
25                 list.Add(key); // key
26             }
27         }
28
29         // Linq
30         List<int> keyList = dict.Where(q => q.Value == "2")
31                         .Select(q => q.Key).ToList<int>(); //get all keys
32
33         keyList = (from q in dict
34                     where q.Value == "2"
35                     select q.Key).ToList<int>(); //get all keys
36
37         var firstKey = dict.FirstOrDefault(q => q.Value == "2").Key; //get first key
38     }
时间: 2024-10-22 20:27:43

C# Dictionary已知value获取对应的key的相关文章

已知起始点,获取每段等距离途经点的经纬度(用百度js api作)

已知两个中文地址,自动规划路径,获取路径上每个3公里的点的经纬度 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <

Android百度地图 - 在地图上标注已知GPS纬度经度值的一个或一组覆盖物 - OPEN 开发经验库 - 360安全浏览器 8.1

首页   代码   文档   问答   资讯   经验   GitHub日报 登录   注册 www.open-open.com/libOPEN经验 投稿 全部经验分类  Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim C++ C# JSON Ruby Linux Nginx Docker 所有分类  >  开发语言与工具  >  移动开发  

对象布局已知时 C++ 对象指针的转换时地址调整

在我调试和研究 netscape 系浏览器插件开发时,注意到了这个问题.即,在对象布局已知(即对象之间具有继承关系)时,不同类型对象的指针进行转换(不管是隐式的从下向上转换,还是强制的从上到下转换)时,编译器会根据对象布局对相应的指针的值进行调整.不管是 microsoft 的编译器,还是 gcc 编译器都会做这个动作,因为这和 C++ 对象模型有关. 举一个简单的例子,如下代码: #include <stdio.h> class A { public: int x; void foo1()

怎么样仿写已知网址的网页?

今天上午在实验室里学习,无意中看到湖北老乡群里爆出了一则外包的消息. 是问有没有回搭建网站.我接了这单活儿.需求很简单,仿照这一个已知的网站做一个静态页面. 工作量不大.他说了,做一个静态网站.因为之前,我曾做过类似的工作,所以我就答应了. 遇到的第一个问题就是评价.他让我开个价.说实话,我当时也蒙了.这个外包估价这个事情,我之前也没做过.在网上搜了下,每个人说法都不一样.看到一个我觉得可以参考的回答.按照做的页面收费. 每个30~50.于是我给他报价是500,理由就是 大概做10个左右的页面,

Java集合-5. (List)已知有一个Worker 类如下: 完成下面的要求 1) 创建一个List,在List 中增加三个工人,基本信息如下: 姓名 年龄 工资 zhang3 18 3000 li4 25 3500 wang5 22 3200 2) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300 3) 删除wang5 的信息 4) 利用for 循

第六题 5. (List)已知有一个Worker 类如下: public class Worker { private int age; private String name; private double salary; public Worker (){} public Worker (String name, int age, double salary) { this.name = name; this.age = age; this.salary = salary; } public

已知json类型根据类型封装集合

1编写帮助类根绝url得到json public static string Post(string url) { string strURL = url; //创建一个HTTP请求 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL); //Post请求方式 request.Method = "POST"; //内容类型 request.ContentType = "json"; //

Microsoft 修正了安全补丁 MS14-045 存在的已知问题

在2014年8月27号,微软修改了安全公告MS14-045 -内核模式驱动程序中的漏洞可能允许特权提升,以修正安装安全更新2982791所带来的一些已知问题. 概况 为了解决安全更新2982791存在的一些已知问题,微软对于所有受支持的Windows系统重新发布了安全公告MS14-045,使用更新2993651来取代存在问题的更新2982791.微软已经在2014年8月15日移除了更新2982791. 所有的客户都需安装更新2993651来取代已经过期的更新2982791. 如果想要获取更多关于

如何过滤出已知当前目录下oldboy中的所有一级目录

第1章 linux启动过程 1.1 linux启动过程(1) 开机自检(BIOS)内存cup是否有问题(硬件检查)(2) MBR引导(3) GRUB菜单(选择不同的内核)(4) 加载内核(kernel)(5) 运行init进程(linux里面的第一个进程,初始化过程)(6) 读取/etc/inittab配置文件(运行级别配置文件)(7) 执行/etc/rc.d/rc.sysinit脚本(系统初始化脚本,设置主机名,设置IP地址)(8) 执行/etc/rc.d/rc脚本(根据系统的云心级别,再开机

HDU - 6096 :String (AC自动机,已知前后缀,匹配单词,弱数据)

Bob has a dictionary with N words in it. Now there is a list of words in which the middle part of the word has continuous letters disappeared. The middle part does not include the first and last character. We only know the prefix and suffix of each w