我有Foo课。 Foo具有公共字符串x的属性。
我想将Foo实例化为ONE和TWO几次,并将这些实例分别添加到Hashtable Bar中,分别为1和2。如何获取特定实例的字符串x。
我尝试了类似的东西:Bar [1] .x,但属性x无法识别。
我做错了什么?
答案 0 :(得分:6)
您应该使用Dictionary<int, Foo>
代替Hashtable
。 Hashtable
是我们没有仿制药的日子过时的类。它将键和值存储为object
类型。另一方面,Dictionary<TKey,TValue>
是一个强类型的通用集合。
如果您出于某种原因想要使用Hashtable
(例如C#1.0),则必须转换对象:
((Foo)Bar[1]).x
答案 1 :(得分:0)
你可能需要从Hashtable中搜索oyu一次。尝试: string s =(myHashtable [myKey] as Foo).x;
精氨酸!刚看到Mehrdad Afshari的答案,正确指出了这一点