遇到Dictionary的Value查找Key时,第一想法就是遍历判断相等,然后取出Key值,当较多时,就无比纠结,必须要写一函数,然后传递参数,返回参数解决了,接触linq后,对于所有集合类的东东,发现了一种更加省力的检索方式,以此问题为例,以下是一测试程序代码,实现标题功能:
using System;
using System.Collections.Generic;
using System.Linq;//这玩意儿必须要有
using System.Text;
namespace ConsoleApplication20
{
class Program
{
static void Main(string[] args)
{
Dictionary<int, string> dd = new Dictionary<int, string>();
dd.Add(1, "56");
dd.Add(2, "89");
dd.Add(3, "580");
dd.Add(4, "89");
var user = dd.Where(p => p.Value == "89").Select(p => p.Key);
//或者dd.FirstOrDefault(p => p.Value == “89”).Key;
foreach (object i in user)
{
Console.WriteLine(i);
}
Console.ReadKey();
}
}
}
输出为
2
4