首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字典存储与检索

字典存储与检索
EN

Stack Overflow用户
提问于 2016-06-02 15:42:07
回答 3查看 67关注 0票数 2
代码语言:javascript
复制
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行,它说键已经被添加了。如果我有评论的话,上面说钥匙没找到.非常困惑和沮丧,不知道我做错了什么。:/

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-02 15:45:26

您需要检查字典中是否已经存在密钥:

代码语言:javascript
复制
if(qData.ContainsKey("businessName")) 
     qData["businessName"] = Request.QueryString["businessName"];
else 
     qData.Add("businessName", Request.QueryString["businessName"]);

Add方法不添加或更新键值对,但它只是添加它。否则,如果键已经存在于给定的字典中,则需要使用索引器,如上面的代码示例所示。

甚至更好。检查泛型字典索引器的MSDN状态

与指定键关联的值。如果找不到指定的键,则get操作将抛出一个KeyNotFoundException,而set操作将使用指定的键创建一个新元素。

因此,您还可以简化代码如下:

代码语言:javascript
复制
// No need of using Add() or the indexer. You can 
// just use the indexer instead in either case:
qData["businessName"] = Request.QueryString["businessName"];
票数 4
EN

Stack Overflow用户

发布于 2016-06-02 15:45:17

键可能已经存在,取决于调用上下文,最简单的方法是在添加键之前检查该键是否存在。

代码语言:javascript
复制
if (!qData.ContainsKey(key)) 
{
     qData.Add("businessName",Request.QueryString["businessName"]);
}

当你读字典的时候,检查一下钥匙在那里

代码语言:javascript
复制
if (qData.ContainsKey(key)) 
{
      value = qData["businessName"];
}
票数 0
EN

Stack Overflow用户

发布于 2016-06-02 17:36:17

代码语言:javascript
复制
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))
}

但是一个固定的"businessName“键对我来说没有意义

代码语言:javascript
复制
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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37596431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档