C#实现Ruby的负数索引器_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C#实现Ruby的负数索引器

C#实现Ruby的负数索引器

 2016/7/31 5:30:18  手中沙砾  程序员俱乐部  我要评论(0)
  • 摘要:publicclassInvertibleList<T>:List<T>{publicnewTthis[intindex]{get{if(index>=0)returnbase[index];if(Count+index<0)thrownewIndexOutOfRangeException();returnthis[Count+index];}set{if(index>=0)base[index]=value;else{if
  • 标签: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);

 

发表评论
用户名: 匿名