ArrayList.RemoveAt(Int32) 方法

定义

移除 ArrayList 的指定索引处的元素。

public:
 virtual void RemoveAt(int index);
public virtual void RemoveAt (int index);
abstract member RemoveAt : int -> unit
override this.RemoveAt : int -> unit
Public Overridable Sub RemoveAt (index As Integer)

参数

index
Int32

要移除的元素的从零开始的索引。

实现

例外

index 小于零。

  • 或 - index 等于或大于 Count

ArrayList 为只读。

示例

下面的代码示例演示如何从中 ArrayList删除元素。

using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList );
int main()
{
   
   // Creates and initializes a new ArrayList.
   ArrayList^ myAL = gcnew ArrayList;
   myAL->Add( "The" );
   myAL->Add( "quick" );
   myAL->Add( "brown" );
   myAL->Add( "fox" );
   myAL->Add( "jumps" );
   myAL->Add( "over" );
   myAL->Add( "the" );
   myAL->Add( "lazy" );
   myAL->Add( "dog" );
   
   // Displays the ArrayList.
   Console::WriteLine( "The ArrayList initially contains the following:" );
   PrintValues( myAL );
   
   // Removes the element containing "lazy".
   myAL->Remove( "lazy" );
   
   // Displays the current state of the ArrayList.
   Console::WriteLine( "After removing \"lazy\":" );
   PrintValues( myAL );
   
   // Removes the element at index 5.
   myAL->RemoveAt( 5 );
   
   // Displays the current state of the ArrayList.
   Console::WriteLine( "After removing the element at index 5:" );
   PrintValues( myAL );
   
   // Removes three elements starting at index 4.
   myAL->RemoveRange( 4, 3 );
   
   // Displays the current state of the ArrayList.
   Console::WriteLine( "After removing three elements starting at index 4:" );
   PrintValues( myAL );
}

void PrintValues( IEnumerable^ myList )
{
   IEnumerator^ myEnum = myList->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      Console::Write( "   {0}", obj );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.
 
 The ArrayList initially contains the following:
    The   quick   brown   fox   jumps   over   the   lazy   dog
 After removing "lazy":
    The   quick   brown   fox   jumps   over   the   dog
 After removing the element at index 5:
    The   quick   brown   fox   jumps   the   dog
 After removing three elements starting at index 4:
    The   quick   brown   fox
 */
using System;
using System.Collections;
public class SamplesArrayList  {

   public static void Main()  {

      // Creates and initializes a new ArrayList.
      ArrayList myAL = new ArrayList();
      myAL.Add( "The" );
      myAL.Add( "quick" );
      myAL.Add( "brown" );
      myAL.Add( "fox" );
      myAL.Add( "jumps" );
      myAL.Add( "over" );
      myAL.Add( "the" );
      myAL.Add( "lazy" );
      myAL.Add( "dog" );

      // Displays the ArrayList.
      Console.WriteLine( "The ArrayList initially contains the following:" );
      PrintValues( myAL );

      // Removes the element containing "lazy".
      myAL.Remove( "lazy" );

      // Displays the current state of the ArrayList.
      Console.WriteLine( "After removing \"lazy\":" );
      PrintValues( myAL );

      // Removes the element at index 5.
      myAL.RemoveAt( 5 );

      // Displays the current state of the ArrayList.
      Console.WriteLine( "After removing the element at index 5:" );
      PrintValues( myAL );

      // Removes three elements starting at index 4.
      myAL.RemoveRange( 4, 3 );

      // Displays the current state of the ArrayList.
      Console.WriteLine( "After removing three elements starting at index 4:" );
      PrintValues( myAL );
   }

   public static void PrintValues( IEnumerable myList )  {
      foreach ( Object obj in myList )
         Console.Write( "   {0}", obj );
      Console.WriteLine();
   }
}
/*
This code produces the following output.

The ArrayList initially contains the following:
   The   quick   brown   fox   jumps   over   the   lazy   dog
After removing "lazy":
   The   quick   brown   fox   jumps   over   the   dog
After removing the element at index 5:
   The   quick   brown   fox   jumps   the   dog
After removing three elements starting at index 4:
   The   quick   brown   fox
*/
Imports System.Collections

Public Class SamplesArrayList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new ArrayList.
        Dim myAL As New ArrayList()
        myAL.Add("The")
        myAL.Add("quick")
        myAL.Add("brown")
        myAL.Add("fox")
        myAL.Add("jumps")
        myAL.Add("over")
        myAL.Add("the")
        myAL.Add("lazy")
        myAL.Add("dog")
        
        ' Displays the ArrayList.
        Console.WriteLine("The ArrayList initially contains the following:")
        PrintValues(myAL)
        
        ' Removes the element containing "lazy".
        myAL.Remove("lazy")
        
        ' Displays the current state of the ArrayList.
        Console.WriteLine("After removing ""lazy"":")
        PrintValues(myAL)
        
        ' Removes the element at index 5.
        myAL.RemoveAt(5)
        
        ' Displays the current state of the ArrayList.
        Console.WriteLine("After removing the element at index 5:")
        PrintValues(myAL)
        
        ' Removes three elements starting at index 4.
        myAL.RemoveRange(4, 3)
        
        ' Displays the current state of the ArrayList.
        Console.WriteLine("After removing three elements starting at index 4:")
        PrintValues(myAL)
    End Sub
    
    Public Shared Sub PrintValues(myList As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myList
            Console.Write("   {0}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' The ArrayList initially contains the following:
'    The   quick   brown   fox   jumps   over   the   lazy   dog
' After removing "lazy":
'    The   quick   brown   fox   jumps   over   the   dog
' After removing the element at index 5:
'    The   quick   brown   fox   jumps   the   dog
' After removing three elements starting at index 4:
'    The   quick   brown   fox

注解

删除元素后,调整集合的大小,属性的值 Count 将减少一个。

在由连续的元素组成的集合(如列表)中,已移除元素下面的元素将上移以占据空出的位置。 如果集合具有索引,则移动的元素的索引也将更新。 此行为不适用于元素按概念划分为不同存储桶的集合,如哈希表。

此方法是一个O(n)操作,其中 nCount

适用于

另请参阅