c#删除哈希表中所有值为1的键值对 代码
2个回答
展开全部
基本思路是先获取哈希表中所有值为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();
运行结果:
小知识:
HashTable类(哈希表):每个元素都是一个存储在 DictionaryEntry
对象中的键/值对。键不能为 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing),但值可以。
在哈希表中,根据指定键名获取或设置相应值的运算复杂度为 O(1),判断指定键名是否存在的运算复杂度也是 O(1)。
展开全部
ArrayList list = new ArrayList();
foreach (DictionaryEntry n in h)//遍历哈希表h,n获得了哈希表h的键值对。
{
if (n.Value.Equals(1))//寻找值为1的键值对
{
list.Add(n.Key);//把值为1的键值对对应的 键 添加到集合list里。
}
}
foreach (var item in list)//list里装的都是键。
{
h.Remove(item);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询