繁体   English   中英

将类实例存储在哈希表中

[英]Storing Class Instances In A Hashtable

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

我想将Foo实例化为一次和两次,然后分别使用键1和2将这些实例添加到Hashtable Bar中。 如何获取特定实例的字符串x。

我尝试过类似的操作:Bar [1] .x,但是无法识别属性x。

我究竟做错了什么?

您应该使用Dictionary<int, Foo>而不是Hashtable 在没有泛型的日子里, Hashtable是一个过时的类。 它将键和值存储为object类型。 另一方面, Dictionary<TKey,TValue>是强类型的泛型集合。

如果出于某种原因(例如C#1.0)要使用Hashtable ,则必须强制转换对象:

 ((Foo)Bar[1]).x

您可能需要在oyu从哈希表中检索后进行投射。 试试:string s =(myHashtable [myKey] as Foo).x;

啊! 刚刚看到Mehrdad Afshari的回答,正确地指出了这一点

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM