这个方法时常会用到,而且很有效。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 />");