我们知道可以用索引器输出数组中的元素,但是我想用索引器输出其中的键和值怎么操作啊,
例如哈希表的名字HS
则使用索引器可以这样取得哈希表中的值
public object this[object i]
{
get{
return HS[i].value;
}
}
|
Hashtable类本身不是就提供了索引器吗? 没明白! public class MyClass { private Hashtable _data = new Hashtable(); public object this[object key] { get { return this._data[key]; } } public void Foo() { foreach (DictionaryEntry entry in this._data) { Console.WriteLine(string.Format("Key: {0}; Value: {1}", entry.Key, entry.Value)); } } } 楼上的,哪个不是索引器好不好! 充其量只是用来循环输出 hashtable因为其内容的机制,所以它不能根据索引来取值,因为它内部排序的机制,你可以试试,插入几个值后循环输出结果,而你再次插入一个新的key时,这里它里面的排序位置就会发现改变。。。,所以它没有提供索引器 如果要求不是很高的话就用list来做吧 估计你是要返回一个键值对结构吧。 public DictionaryEntry this[object key] { get{ DictionaryEntry entry = new DictionaryEntry(); entry.Key = key; entry.Value = HS[key].value return entry; } } 呵,比较奇怪的需求... 楼主是想用 数字 索引 来显示 哈希表中的内容吗? 这个不是很好办, 比较简单的方法,你通过Key 数组来处理吧 指定一个Index, 查询Key,然后再用这个Key,搜索对应的Value 不过,要遍历数组,直接使用For each 就可以了 |
|
8个月前 Anders Cui : @没剑 索引器是跟key相关的,跟顺序有关系吗? |
|
8个月前 没剑 : 楼上的,不好意思,偶看错了,因为楼主用:public object this[object i]偶一个到i就以为整型,一以为整形就自然以为楼主想要整数的索引,哈哈... 这样子的话,貌似Colin Han 朋友的就可以了 |
|
8个月前 Anders Cui : 其实楼主自己已经实现了啊 也许是没理解楼主的意思吧 |