C#实现Ruby的负数索引器
C#实现Ruby的负数索引器
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(Count+index<0) thrownewIndexOutOfRangeException(); this[Count+index]=value; } } } }
使用方法:
InvertibleList<string>list=newInvertibleList<string> { "1", "2", "3", "4", "5", }; list[-2]="asd"; list.ForEach(Console.WriteLine);
代码很简单,使用也很方便,希望对大家学习C#能够有所帮助