如何在不调用toString()方法的情况下从哈希表中获取字符串值?
例子:我的班级:
public class myHashT : Hashtable
{
public myHashT () { }
...
public override object this[object key]
{
get
{
return base[key].ToString(); <--this doesn't work!
}
set
{
base[key] = value;
}
}
}
在另一堂课中:
myHashT hT;
string test = hT["someKey"];
它可以与hT["someKey"].toString();
一起使用,但我需要它而不需要调用ToString()
而不需要转换为(字符串)。
答案 0 :(得分:1)
你能投出吗?
(string)hT["someKey"]
请注意,如果这是2.0或更高,则通用Dictionary<string,string>
会更简单......并且在1.1 StringDictionary
中可以完成工作(尽管IIRC需要注意不区分大小写的情况)关键)。
答案 1 :(得分:0)
如果我理解正确,哈希表中的值是一个字符串?
如果是这样,您需要将对象强制转换为String。
string test = (string)hT["someKey"];
答案 2 :(得分:0)
您可以使用System.Collections.Generic.HashSet。或者使用组合而不是继承,即。将哈希表作为您的私有字段并编写自己的索引器来执行ToString()。
public class myHashT
{
public myHashT () { }
...
private Hashtable _ht;
public string this[object key]
{
get
{
return _ht[key].ToString();
}
set
{
_ht[key] = value;
}
}
}