关于Dictionary的TryGetValue方法

这个方法时常会用到,而且很有效。TryGetValue:获取与指定的键相关联的值

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

 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的值

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

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 />");







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值