C# Dictionary通过value获取对应的key值

1:最直白的循环遍历方法,可以分为遍历key--value键值对以及所有的key两种表现形式

2:用Linq的方式去查询(当然了这里要添加对应的命名空间 using System.Linq)

如下为一个十分简单的代码示例:

private void GetDicKeyByValue()
{
    Dictionary<string, string> dic = new Dictionary<string, string>();
    dic.Add("1", "1");
    dic.Add("2", "2");
    dic.Add("3", "2");
    //foreach KeyValuePair traversing
    foreach (KeyValuePair<string, string> kvp in dic)
    {
        if (kvp.Value.Equals("2"))
        {
            //...... kvp.Key;
        }
    }

    //foreach dic.Keys
    foreach (string key in dic.Keys)
    {
        if (dic[key].Equals("2"))
        {
            //...... key
        }
    }

    //Linq
    var keys = dic.Where(q => q.Value == "2").Select(q => q.Key);  //get all keys

    List<string> keyList = (from q in dic
                            where q.Value == "2"
                            select q.Key).ToList<string>(); //get all keys

    var firstKey = dic.FirstOrDefault(q => q.Value == "2").Key;  //get first key
}

.....

时间: 2024-11-04 22:25:05

C# Dictionary通过value获取对应的key值的相关文章

C# Dictionary通过value获取对应的key值[转发]

1:最直白的循环遍历方法,可以分为遍历key--value键值对以及所有的key两种表现形式 2:用Linq的方式去查询(当然了这里要添加对应的命名空间 using System.Linq) 如下为一个十分简单的代码示例: private void GetDicKeyByValue() { Dictionary<string, string> dic = new Dictionary<string, string>(); dic.Add("1", "1

Java代码中获取Json的key值

测试json字符串: {"access_token":"hkbQl5o_l67dZ7_vJRATKBwTLk9Yj5QyMuOJThAr8Baj0xWf4wxW1p4ym4iTZ3-ptWRRoVtbCNJnyjGLfed_4bB0HiqGP8v-aXOJUUk1tFs","expires_in":7200,"refresh_token":"_or_31yEp8XhxGWvrAzdWIkXfFlKjfb3iTRpfa

Js中获取对象的所有key值

假如现在有一个对象 var obj = { A:2 ,B:"Ray" ,C:true ,D:function(){} } 如果想遍历对象obj中的所有键值,一般是用以下方式 for(var key in obj){ console.log(key,obj[key]) } 输出: A 2 B Ray C true D function (){} 如果只是想获取所有的key值,用上面的方法也行得通. 但有更简单的方式:Object.keys(...),返回值是包含key的数组 如 cons

通过Dictionary key值获取对应value

/// <summary> /// 通过Dictionary key值获取对应value /// </summary> public string GetValueByKey(Dictionary<string, string> dic,string key) { string result = ""; foreach (KeyValuePair<string, string> kvp in dic) { if (kvp.Key.Equa

Map/HashMap 获取Key值的方法

1.通过  KeySet()方法 Map<String,Student> newmap = new HashMap<String,Student>(); //newmap HaspMap类型的集合 有唯一的Key,一个Key对应相应的学生 Student stu = new Student("11","Mary","79"); //创建一个学生对象 学号11; 姓名 Mary 成绩 79 newmap.put("

js获取json对象的key值

 <script type="text/javascript">  getJson('age'); function getJson(key){ var jsonObj={"name":"傅红雪","age":"24","profession":"刺客"}; //1.使用eval方法 var eValue=eval('jsonObj.'+key); ale

redis 分布式锁 获取redis的key

今天翻看去年写的代码,发现了有一块用redis写了分布式锁,业务场景就是,再搭建第一版爬虫的时候,用来 定时任务来获取redis里的key值,保证同一时间只有一台机器拿到这个key,用到这样的办法来做,可以后来发现,机器多的话,反而花费时间在争抢锁上,毫无意义,也就放弃了这版爬虫框架. 下面是代码,自己可以拿去试试,调调,因为用的时间短,可能会有bug. /** * 获取redis对应的爬虫key的锁 * @param lockKey * @return */ public boolean ob

HashMap根据value获取key值

public static String getCityId(HashMap<String,String> citys, String city){ Set set = citys.entrySet();//新建一个不可重复的集合 ArrayList<String> arr = new ArrayList<String>();//新建一个集合 Iterator it = set.iterator();//遍历的类 while(it.hasNext()) { Map.En

数据更新时的Key值判断(C#)

今天在工作过程中遇到下面的小问题,在更新数据时我想检查该数据Key是否已经存在,如果不存在则直接添加,否则则根据其他状态再判断是否需要更新. 这就需要首先获取已经存在的Key的集合.可以使用以下方法实现,比如Key值为一个字符串. List<string> 检查方法为Contains,该方法会遍历List的中的某一个值进行比较.性能较差. Dictionary<string, bool>  记录键和值的相应关系, 如果只是想检查某个键值是否存在,可以使用TryGetValue Ob