public static Dictionary<string,string> qData = new Dictionary<string,string>();
protected void Page_LoadComplete(object sender, EventArgs e)
{
qData.Add("businessName",Request.QueryString["businessName"]);
}
protected void craCHeck(object sender, EventArgs e)
{
string value = "";
value = qData["businessName"];
}
如果我不评论qData.Add
行,则表示该密钥已添加。如果我评论它,它说钥匙没找到......非常困惑和沮丧,不知道我做错了什么。 :/
答案 0 :(得分:4)
您需要检查字典中是否已存在密钥:
if(qData.ContainsKey("businessName"))
qData["businessName"] = Request.QueryString["businessName"];
else
qData.Add("businessName", Request.QueryString["businessName"]);
Add
方法不会添加或更新键值对,但它只是
添加它。否则,如果密钥已存在于给定的中
字典,你需要使用索引器,如上面的代码所示
样品
甚至比那更好。检查关于通用字典索引器的MSDN states:
与指定键关联的值。如果指定的密钥是 找不到,get操作会抛出KeyNotFoundException和一个set operation使用指定的键创建一个新元素。
因此,您还可以按如下方式简化代码:
// No need of using Add() or the indexer. You can
// just use the indexer instead in either case:
qData["businessName"] = Request.QueryString["businessName"];
答案 1 :(得分:0)
密钥可能已经存在,具体取决于调用上下文 最简单的方法是在添加密钥之前检查密钥是否存在
if (!qData.ContainsKey(key))
{
qData.Add("businessName",Request.QueryString["businessName"]);
}
当您从字典中读取时,请检查密钥是否存在
if (qData.ContainsKey(key))
{
value = qData["businessName"];
}
答案 2 :(得分:0)
protected void Page_LoadComplete(object sender, EventArgs e)
{
qData["businessName"] = Request.QueryString["businessName"]);
}
protected void craCHeck(object sender, EventArgs e)
{
string value = "";
qData.TryGetValue("businessName", out value))
}
但&#34; businessName&#34;的固定密钥;对我来说没有意义
string queryString = string.empty;
protected void Page_LoadComplete(object sender, EventArgs e)
{
queryString = Request.QueryString["businessName"]);
}
protected void craCHeck(object sender, EventArgs e)
{
string value = queryString;
}