Hashtable.Clear 方法

定义

Hashtable 中移除所有元素。

public:
 virtual void Clear();
public virtual void Clear ();
abstract member Clear : unit -> unit
override this.Clear : unit -> unit
Public Overridable Sub Clear ()

实现

例外

示例

以下示例演示如何清除 的值 Hashtable

using namespace System;
using namespace System::Collections;
void PrintKeysAndValues( Hashtable^ myHT );
int main()
{
   
   // Creates and initializes a new Hashtable.
   Hashtable^ myHT = gcnew Hashtable;
   myHT->Add( "one", "The" );
   myHT->Add( "two", "quick" );
   myHT->Add( "three", "brown" );
   myHT->Add( "four", "fox" );
   myHT->Add( "five", "jumps" );
   
   // Displays the count and values of the Hashtable.
   Console::WriteLine( "Initially," );
   Console::WriteLine( "   Count    : {0}", myHT->Count );
   Console::WriteLine( "   Values:" );
   PrintKeysAndValues( myHT );
   
   // Clears the Hashtable.
   myHT->Clear();
   
   // Displays the count and values of the Hashtable.
   Console::WriteLine( "After Clear," );
   Console::WriteLine( "   Count    : {0}", myHT->Count );
   Console::WriteLine( "   Values:" );
   PrintKeysAndValues( myHT );
}

void PrintKeysAndValues( Hashtable^ myHT )
{
   Console::WriteLine( "\t-KEY-\t-VALUE-" );
   IEnumerator^ myEnum = myHT->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      DictionaryEntry de = *safe_cast<DictionaryEntry ^>(myEnum->Current);
      Console::WriteLine( "\t{0}:\t{1}", de.Key, de.Value );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.
 
 Initially,
    Count    : 5
    Values:
         -KEY-   -VALUE-
         two:    quick
         three:  brown
         four:   fox
         five:   jumps
         one:    The

 After Clear,
    Count    : 0
    Values:
         -KEY-   -VALUE-

 */
using System;
using System.Collections;
public class SamplesHashtable
{

   public static void Main()
   {
      // Creates and initializes a new Hashtable.
      var myHT = new Hashtable();
      myHT.Add("one", "The");
      myHT.Add("two", "quick");
      myHT.Add("three", "brown");
      myHT.Add("four", "fox");
      myHT.Add("five", "jumps");

      // Displays the count and values of the Hashtable.
      Console.WriteLine("Initially,");
      Console.WriteLine($"   Count    : {myHT.Count}");
      Console.WriteLine("   Values:");
      PrintKeysAndValues(myHT);

      // Clears the Hashtable.
      myHT.Clear();

      // Displays the count and values of the Hashtable.
      Console.WriteLine("After Clear,");
      Console.WriteLine("   Count    : {myHT.Count}");
      Console.WriteLine("   Values:" );
      PrintKeysAndValues(myHT);
   }

   public static void PrintKeysAndValues( Hashtable myHT )
   {
      Console.WriteLine("\t-KEY-\t-VALUE-");
      foreach (DictionaryEntry de in myHT)
         Console.WriteLine("\t{de.Key}:\t{de.Value}");
      Console.WriteLine();
   }
}


/*
This code produces the following output.

Initially,
   Count    : 5
   Values:
        -KEY-   -VALUE-
        two:    quick
        three:  brown
        four:   fox
        five:   jumps
        one:    The

After Clear,
   Count    : 0
   Values:
        -KEY-   -VALUE-

*/
Imports System.Collections

Public Class SamplesHashtable

    Public Shared Sub Main()

        ' Creates and initializes a new Hashtable.
        Dim myHT As New Hashtable()
        myHT.Add("one", "The")
        myHT.Add("two", "quick")
        myHT.Add("three", "brown")
        myHT.Add("four", "fox")
        myHT.Add("five", "jumps")

        ' Displays the count and values of the Hashtable.
        Console.WriteLine("Initially,")
        Console.WriteLine($"   Count    : {myHT.Count}")
        Console.WriteLine("   Values:")
        PrintKeysAndValues(myHT)

        ' Clears the Hashtable.
        myHT.Clear()

        ' Displays the count and values of the Hashtable.
        Console.WriteLine("After Clear,")
        Console.WriteLine($"   Count    : {myHT.Count}")
        Console.WriteLine("   Values:")
        PrintKeysAndValues(myHT)

    End Sub


    Public Shared Sub PrintKeysAndValues(myHT As Hashtable)
        Console.WriteLine(vbTab + "-KEY-" + vbTab + "-VALUE-")
        For Each de As DictionaryEntry In myHT
            Console.WriteLine(vbTab + "{0}:" + vbTab + "{1}", de.Key, de.Value)
        Next
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' Initially,
'    Count    : 5
'    Values:
'         -KEY-   -VALUE-
'         two:    quick
'         five:   jumps
'         one:    The
'         three:  brown
'         four:   fox
'
' After Clear,
'    Count    : 0
'    Values:
'         -KEY-   -VALUE-
'

注解

Count 将设置为零,同时还会释放集合元素中其他对象的引用。 容量保持不变。

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

适用于

另请参阅