【问题标题】:Find a value from a hashtable从哈希表中查找值
【发布时间】:2012-07-02 21:02:06
【问题描述】:

如果我有一个通用列表,我会做这样的事情

myListOfObject.FindAll(x=>(x.IsRequired==false));

如果我需要在Hashtable 中做类似的事情怎么办?复制到临时的hashtable 并循环和比较将是我最后尝试的事情:-(

【问题讨论】:

  • 如果您正在使用 > .NET 1.1(99.999999%),请不要再使用 HashTables。改用强类型字典。
  • 哈希表 h; h.ContainsKey(YourKeyHere) 或 h.ContainsValue(YourValueHere)

标签: c# .net collections hashtable


【解决方案1】:

首先,使用System.Collections.Generic.Dictionary<TKey, TValue> 以获得更好的强类型支持,而不是Hashtable

如果您只需要查找一个键或一个值,请使用ContainsKey(object key)ContainsValue(object value) 方法,这两种方法都可以在Hashtable 类型上找到。

或者您可以更进一步,在 Hashtable 部分上使用 linq 扩展:

Hashtable t = new Hashtable();
t.Add("Key", "Adam");

// Get the key/value entries.
var itemEntry = t.OfType<DictionaryEntry>().Where(de => (de.Value as string) == "Adam");

// Get just the values.
var items = t.Values.OfType<string>().Where(s => s == "Adam");

// Get just the keys.
var itemKey = t.Keys.OfType<string>().Where(k => k == "Key");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多