Hashtable中如何根据value找到对应的key值

 int[] nums = new[] { 1, 2, 4, 5 };
Hashtable hsNums = new Hashtable();
for (int i = 0; i < nums.Length; i++)
{
    hsNums.Add(i, nums[i]);
}
int complement = 5;
var obj = hsNums.OfType<DictionaryEntry>().FirstOrDefault(x => x.Value.ToString() == complement.ToString());
Console.WriteLine(obj.Key);

//FirstOrDefault 中的委托比较,要先把类型转成一样的,否则会出错。 
var obj1 = hsNums.OfType<DictionaryEntry>().FirstOrDefault(x => x.Value== complement.ToString());
Console.WriteLine(obj1.Key);

运算结果:

第二个因为没有转为对应的类型,所以找不到对应的 key值 。 obj1值是null值 。


本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论