基本思路是先获取哈希表中所有值为1的键名,然后用这些键名引用相应元素,并移除这些元素。
//生成Hash表。
Hashtable hashtable = new Hashtable();
hashtable.Add("name", "Tome");
hashtable.Add("age", 18);
hashtable.Add("sex", "男");
hashtable.Add("补考次数", 1);
hashtable.Add("重修次数", 1);
//找到所有值为1的键名。
string[] keys = hashtable.Keys.Cast<string>().Where(x => hashtable[x].Equals(1)).ToArray();
//移除相应键名对应的元素。
foreach (string key in keys)
hashtable.Remove(key);
//显示Hash表当前所有元素。
foreach (DictionaryEntry entry in hashtable)
Console.WriteLine(entry.Key + "\t" + entry.Value);
Console.ReadKey();
运行结果:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/21a4462309f790523b4ee6e50af3d7ca7acbd59c?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
小知识:
HashTable类(哈希表):每个元素都是一个存储在 DictionaryEntry
对象中的键/值对。键不能为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing),但值可以。
在哈希表中,根据指定键名获取或设置相应值的运算复杂度为 O(1),判断指定键名是否存在的运算复杂度也是 O(1)。