C# 使用值从哈希表中查找
我有一个如下的哈希表:C# 使用值从哈希表中查找,c#,linq,C#,Linq,我有一个如下的哈希表: private Hashtable Sid2Pid = new Hashtable(); Sid2Pid.Add(1,10); Sid2Pid.Add(2,20); Sid2Pid.Add(3,20); Sid2Pid.Add(4,30); 现在,如何使用LinQ从上面的哈希表中获取值为20的键列表ahashtable是DictionaryEntry的IEnumerable,只需稍加转换即可将其转换为LinQ操作符可以处理的内容: var res = from kv
private Hashtable Sid2Pid = new Hashtable();
Sid2Pid.Add(1,10);
Sid2Pid.Add(2,20);
Sid2Pid.Add(3,20);
Sid2Pid.Add(4,30);
现在,如何使用LinQ从上面的哈希表中获取值为20的键列表a
hashtable
是DictionaryEntry
的IEnumerable
,只需稍加转换即可将其转换为LinQ操作符可以处理的内容:
var res = from kv in myHash.Cast<DictionaryEntry>
where (int)kv.Value = targetValue
select (int)kv.Key;
var res=myHash.Cast中的kv
其中(int)kv.Value=目标值
选择(int)千伏键;
注意。如果您传递不同的类型,这将引发异常。使用字典而不是哈希表(请参阅了解原因),然后执行以下操作:
var keys = Sid2Pid.Where(kvp => kvp.Value == 20)
.Select(kvp => kvp.Key);