您的位置:首页 > 产品设计 > UI/UE

关于Dictionary的TryGetValue方法

2016-09-30 12:49 288 查看
这个方法时常会用到,而且很有效。TryGetValue:获取与指定的键相关联的值

比如我们读取一个xml文件,让后将其写入到Dictionary中存储:

[csharp] view
plain copy

private static Dictionary<string, string> SqlKeyValues = null;  

       /// <summary>  

       /// 必要用户字段及别名  

       /// </summary>  

       internal static void InitUserFields(XmlDocument xml)  

       {  

           LoadXml(xml);  

  

           XmlNode fields = xml.SelectSingleNode("/configs/users/fields");  

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

           if (fields.ChildNodes.Count > 0)  

           {  

               foreach (XmlNode n in fields.ChildNodes)  

               {  

                   if (n.NodeType != XmlNodeType.Comment && n.Name.ToLower() == "item")  

                   {  

                       XmlAttribute fieldName = n.Attributes["name"];  

                       UserFields.Add(fieldName.Value, n.InnerXml);  

                   }  

               }  

           }  

       }  

我们可以通过下面方面来获取对应key的值

[csharp] view
plain copy

public static string GetUserField(string fieldName)  

       {  

           string finfo = "";  

           UserFields.TryGetValue(fieldName, out finfo);  

           return finfo;  

       }  

(bool)(UserFields.TryGetValue(fieldName, out finfo))可将其转为boo类型,它方便的是避免了判断key知否存在而引发“给定关键字不在字典中。”的错误。可以通过下面的测试来更进一步了解:

[csharp] view
plain copy

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

            dic.Add("aaa", "123");  

            dic.Add("bbb", "456");  

            dic.Add("ccc", "789");  

            dic.Add("ddd", "321");  

  

            string outStr = "999";  

            dic.TryGetValue("ttt", out outStr);  

            Response.Write(outStr + "<br />");  

            dic.TryGetValue("bbb", out outStr);  

            Response.Write(outStr + "<br />");  

            //Response.Write(dic["ttt"] + "<br />");  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: