在声时一个数组string[] str = new string[3]; 后,可以使用 str[2] 访问到第三个元素的值。我自己写了
private struct bucket
{
  public object key;
  public object val;
}private bucket[] buckets;publci myArray(int size){
  buckets = new bucket[size];
  //加入很多条数据
  buckets[0].key = "XX";
  buckets[0].val = "AA";
  .....
}public string Get(strig Key){
  //取得值并返回
}现在可以使用
myArray arr = new myArray(10);
arr.Get("XX") 通过调用Get方法找到值返回。  请问如何写才可以实现 arr["XX"] 就可以取得对应的返回值?需要在上面代码加入什么方法或什么,才可以接收[]传入的参数?

解决方案 »

  1.   

    public class ButtonCollection : ICollection
    继承ICollection
      

  2.   

    如果是有Key的索引,建议你使用HashTable数据作为容器,这样就便于检索。
      

  3.   

    public class myarray
    {
    private bucket[] buckets; //这里最好用hashtable   
       public bucket this[string key]
       {
         for( int i=0 ; i<buckets.Length ; i++  )
         {
            if( key = buckets[i].key)
               return buckets[i];
        }
         return null;
       }
    }
      

  4.   

    楼上,HashTable,太复杂,我自己重写了一个差不多的。代执行覆盖率就比它原来高多了。呵呵总是我已经解决:方法是
    public object this [string Key]
    {
      get
      {
         //实现的方法
      }
    }
      

  5.   

    hdt(倦怠), 不好意思,我回复时还没有看到你的贴子。同样的谢谢你!