关于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 />");
比如我们读取一个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 />");
相关文章推荐
- 关于Dictionary的TryGetValue方法
- 关于Dictionary的TryGetValue方法
- Dictionary的TryGetValue方法
- 关于Dictionary是否应该是用TryGetValue,又白痴了一回
- Dictionary.TryGetValue 方法
- Dictionary.TryGetValue 方法 试用记 Mark
- 关于 Enum.TryParse 方法的一个小坑…
- Dictionary之TryGetValue
- 关于 Enum.TryParse 方法的一个小坑…
- Dictionary加速查询(TryGetValue)
- OC关于NSDictionary和NSMutableDictionary方法的使用
- 关于Linux常见紧急情况的处理方法
- DataGuard - 一个关于Physical Standby中recover问题的解决方法
- 关于服务器端数据访问(2)两种方法访问基于 SQL 的数据 :
- 关于MSPlus控件下载后用VS.NET打开提示目录不对的解决方法
- 关于Windows Installer服务出错解决方法
- DotNet开发中关于SQLServer连接的两种方法之比较
- (原创)关于如何处理EXCEL( CSV)文件 导入数据库的解决方法!!
- 关于实施RUP软件过程控制的方法和标准[只是一个个人总结]
- 关于String.split()方法