你的位置:首页 > ASP.net教程

[ASP.net教程]C#实现Ruby的负数索引器


  public class InvertibleList<T> : List<T>  {    public new T this[int index]    {      get      {        if (index >= 0) return base[index];        if (Count + index < 0)          throw new IndexOutOfRangeException();        return this[Count + index];      }      set      {        if (index >= 0)          base[index] = value;        else        {          if (Count + index < 0)             throw new IndexOutOfRangeException();          this[Count + index] = value;        }      }    }      }

使用方法:

      InvertibleList<string> list=new InvertibleList<string>      {        "1",        "2",        "3",        "4",        "5",      };      list[-2] = "asd";      list.ForEach(Console.WriteLine);