我正在尝试使用 linq 中的哈希表来获取值为 ABC
的键。到目前为止我做了什么:
Hashtable h=new Hashtable ();
h.Add(1 , "ABC");
h.Add(2 , "AgC");
h.Add(3 , "ABC");
h.Add(4 , "AhC");
预期输出:1、3 (键值为“ABC”)
ICollection c= h.Keys;
var posi= from a in c
where h[a]="ABC"
select a;
但上面的查询不工作并给出编译时错误。
错误是:
could not find an implementation of the query pattern for source type 'System.Collections.ICollection'.
我做错了什么?我是 C# 的新手。如何在 LINQ 中使用哈希表?
你不应该使用非泛型 HashTable
开始。使用通用 Dictionary<int, string>
相反:
var d = new Dictionary<int, string>();
d.Add(1 , "ABC");
d.Add(2 , "AgC");
d.Add(3 , "ABC");
d.Add(4 , "AhC");
var posi = from a in d
where a.Value == "ABC"
select a.Key;
我是一名优秀的程序员,十分优秀!