关于HashTable中如何通过value取得key

时间:2022-11-04 19:16:41
各位大神,请教一下hashtable 的问题。假设我一个hashtable中key和value 的值分别如下:
aaa,bbb
ccc,bbb
www,eee
逗号前为key,逗号后为value,现在已知道value值为bbb。怎么样通过bbb获得对应的两个key值,结果放在一个数组中吗?

11 个解决方案

#1


ht.Where(x => x.Value == "bbb").Select(x => x.Key).ToArray()

#2


引用 1 楼 u012142399 的回复:
ht.Where(x => x.Value == "bbb").Select(x => x.Key).ToArray()


ht中并没有where这个方法哈

#3


ht.OfType<DictionaryEntry>().ToList().Where(kv => kv.Value.ToString() == "bbb").Select(v => v.Key.ToString()).ElementAt(0)
顺便说一下Hashtable的Key不能重复

#4


看错了,那就应该这样:
ht.OfType<DictionaryEntry>().ToList().Where(kv => kv.Value.ToString() == "bbb").Select(v => v.Key.ToString()).ToArray()

#5


t.OfType<DictionaryEntry>().First(x => x.Value == xxx).Key;

#6


引用 2 楼 jialianqing311 的回复:
Quote: 引用 1 楼 u012142399 的回复:

ht.Where(x => x.Value == "bbb").Select(x => x.Key).ToArray()


ht中并没有where这个方法哈


using System.Linq;

#7


引用 4 楼 iamwangshao 的回复:
看错了,那就应该这样:
ht.OfType<DictionaryEntry>().ToList().Where(kv => kv.Value.ToString() == "bbb").Select(v => v.Key.ToString()).ToArray()

我用的是VS2005.没有Oftype这个方法哎

#8


引用 7 楼 jialianqing311 的回复:
Quote: 引用 4 楼 iamwangshao 的回复:

看错了,那就应该这样:
ht.OfType<DictionaryEntry>().ToList().Where(kv => kv.Value.ToString() == "bbb").Select(v => v.Key.ToString()).ToArray()

我用的是VS2005.没有Oftype这个方法哎

2005只能傻循环了。
foreach (DictionaryEntry item in ht)
{
    if (item.Value == xxx) return item.Key;
}

#9


引用 8 楼 caozhy 的回复:
Quote: 引用 7 楼 jialianqing311 的回复:

Quote: 引用 4 楼 iamwangshao 的回复:

看错了,那就应该这样:
ht.OfType<DictionaryEntry>().ToList().Where(kv => kv.Value.ToString() == "bbb").Select(v => v.Key.ToString()).ToArray()

我用的是VS2005.没有Oftype这个方法哎

2005只能傻循环了。
foreach (DictionaryEntry item in ht)
{
    if (item.Value == xxx) return item.Key;
}

谢谢您,我试一下,我刚才又发表了个帖子,可不可以帮忙看一下,标题是“请假大家关于读文件的一个bug问题”

#10


我觉得这种情况用Dictionary更合适

#11


引用 10 楼 Chinajiyong 的回复:
我觉得这种情况用Dictionary更合适

您好,怎么讲?

#1


ht.Where(x => x.Value == "bbb").Select(x => x.Key).ToArray()

#2


引用 1 楼 u012142399 的回复:
ht.Where(x => x.Value == "bbb").Select(x => x.Key).ToArray()


ht中并没有where这个方法哈

#3


ht.OfType<DictionaryEntry>().ToList().Where(kv => kv.Value.ToString() == "bbb").Select(v => v.Key.ToString()).ElementAt(0)
顺便说一下Hashtable的Key不能重复

#4


看错了,那就应该这样:
ht.OfType<DictionaryEntry>().ToList().Where(kv => kv.Value.ToString() == "bbb").Select(v => v.Key.ToString()).ToArray()

#5


t.OfType<DictionaryEntry>().First(x => x.Value == xxx).Key;

#6


引用 2 楼 jialianqing311 的回复:
Quote: 引用 1 楼 u012142399 的回复:

ht.Where(x => x.Value == "bbb").Select(x => x.Key).ToArray()


ht中并没有where这个方法哈


using System.Linq;

#7


引用 4 楼 iamwangshao 的回复:
看错了,那就应该这样:
ht.OfType<DictionaryEntry>().ToList().Where(kv => kv.Value.ToString() == "bbb").Select(v => v.Key.ToString()).ToArray()

我用的是VS2005.没有Oftype这个方法哎

#8


引用 7 楼 jialianqing311 的回复:
Quote: 引用 4 楼 iamwangshao 的回复:

看错了,那就应该这样:
ht.OfType<DictionaryEntry>().ToList().Where(kv => kv.Value.ToString() == "bbb").Select(v => v.Key.ToString()).ToArray()

我用的是VS2005.没有Oftype这个方法哎

2005只能傻循环了。
foreach (DictionaryEntry item in ht)
{
    if (item.Value == xxx) return item.Key;
}

#9


引用 8 楼 caozhy 的回复:
Quote: 引用 7 楼 jialianqing311 的回复:

Quote: 引用 4 楼 iamwangshao 的回复:

看错了,那就应该这样:
ht.OfType<DictionaryEntry>().ToList().Where(kv => kv.Value.ToString() == "bbb").Select(v => v.Key.ToString()).ToArray()

我用的是VS2005.没有Oftype这个方法哎

2005只能傻循环了。
foreach (DictionaryEntry item in ht)
{
    if (item.Value == xxx) return item.Key;
}

谢谢您,我试一下,我刚才又发表了个帖子,可不可以帮忙看一下,标题是“请假大家关于读文件的一个bug问题”

#10


我觉得这种情况用Dictionary更合适

#11


引用 10 楼 Chinajiyong 的回复:
我觉得这种情况用Dictionary更合适

您好,怎么讲?