c#删除哈希表中所有值为1的键值对 代码

 我来答
dalmeeme
2015-12-02 · TA获得超过2914个赞
知道大有可为答主
回答量:1493
采纳率:81%
帮助的人:1066万
展开全部

基本思路是先获取哈希表中所有值为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)。

tonalilili
2014-12-09 · TA获得超过1.6万个赞
知道大有可为答主
回答量:8050
采纳率:71%
帮助的人:3076万
展开全部
            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);
            }
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式