好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#实现Ruby的负数索引器

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);

代码很简单,使用也很方便,希望对大家学习C#能够有所帮助

dy("nrwz");

查看更多关于C#实现Ruby的负数索引器的详细内容...

  阅读:51次