【问题标题】:Reading key value pair from hash table [closed]从哈希表中读取键值对[关闭]
【发布时间】:2016-02-26 21:17:40
【问题描述】:

我在下面存储在我的网络配置中。

<add key="* Cancellation" value="Allow"/>

现在我将其加载到 hast 表中

 NameValueCollection tempCollection = (NameValueCollection)ConfigurationManager.GetSection(CONFIG_SECTION);
 Hashtable localCollection = new Hashtable();
 localCollection.Add(Collection.GetKey(index), tempCollection );

现在我正在尝试通过提供键从哈希表中读取值。

我的密钥在取消之前可以有任何诸如待处理、取消、背书或拒绝之类的内容,因此我将 * 保留在密钥中。 * 表示它可以有任何东西。

value = tempCollection["Pending Cancellation"]

但我的值没有正确填充。值为 null

【问题讨论】:

  • "* Cancellation" != "Pending Cancelleation",所以没有找到它也就不足为奇了。您期待什么行为?
  • 有什么办法可以提供适当的价值。在取消之前,任何事情都可能发生,例如待处理、认可或拒绝
  • 更正了我的帖子。没有拼写错误不是问题
  • 你在开玩笑吧。一切都完成后,这些家伙把问题搁置了

标签: c# hashtable namevaluecollection


【解决方案1】:

如果您想这样做,您必须查找所有与您要查找的字符串类似的键。类似的东西:

    foreach (DictionaryEntry entry in hashtable)
    {
        if(DictionaryEntry.Key.Contains(" Cancellation")){value = DictionaryEntry.Value;}
    }

【讨论】:

  • 感谢 Ben,这就是我想要实现的目标。这是否可能使用哈希表或唯一的选择是切换到字典。
  • 请记住,每次匹配键中的 *Cancellation 时,都会覆盖写入值。
  • 这对我来说很好,但这是可以通过哈希表实现的
  • 我为哈希表更新了它。
  • 如果这解决了您的问题,请标记为这样。
猜你喜欢
  • 1970-01-01
  • 2019-12-09
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2017-01-24
  • 2018-04-14
  • 2015-01-10
  • 2023-03-04
相关资源
最近更新 更多