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#能够有所帮助