这个方法时常会用到,而且很有效。TryGetValue:获取与指定的键相关联的值
比如我们读取一个xml文件,让后将其写入到Dictionary中存储:
- private static Dictionary<string, string> SqlKeyValues = null;
-
-
-
- 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 />");
-