如果我有一个通用列表,我会做这样的事情
myListOfObject.FindAll(x=>(x.IsRequired==false));
如果我需要在 中做类似的事情怎么办Hashtable
?复制到临时hashtable
并循环和比较将是我尝试的最后一件事:-(
如果我有一个通用列表,我会做这样的事情
myListOfObject.FindAll(x=>(x.IsRequired==false));
如果我需要在 中做类似的事情怎么办Hashtable
?复制到临时hashtable
并循环和比较将是我尝试的最后一件事:-(
首先,System.Collections.Generic.Dictionary<TKey, TValue>
用于更好的强类型支持,而不是Hashtable
.
如果您只需要找到一个键或一个值,请使用方法ContainsKey(object key)
or 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");