在Hashtable中存储类实例

时间:2010-02-03 21:11:53

标签: c# .net visual-studio hashtable

我有Foo课。 Foo具有公共字符串x的属性。

我想将Foo实例化为ONE和TWO几次,并将这些实例分别添加到Hashtable Bar中,分别为1和2。如何获取特定实例的字符串x。

我尝试了类似的东西:Bar [1] .x,但属性x无法识别。

我做错了什么?

2 个答案:

答案 0 :(得分:6)

您应该使用Dictionary<int, Foo>代替HashtableHashtable是我们没有仿制药的日子过时的类。它将键和值存储为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的答案,正确指出了这一点