Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

HashSet<T>.Clear Method

Definition

Namespace:
System.Collections.Generic
Assemblies:
System.Collections.dll, System.Core.dll
Assemblies:
netstandard.dll, System.Collections.dll
Assembly:
System.Collections.dll
Assembly:
System.Core.dll
Assembly:
netstandard.dll
Source:
HashSet.cs
Source:
HashSet.cs
Source:
HashSet.cs
Source:
HashSet.cs
Source:
HashSet.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Removes all elements from a HashSet<T> object.

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

Implements

Examples

The following example creates and populates a HashSet<T> collection, then clears it and releases the memory referenced by the collection.

HashSet<int> Numbers = new HashSet<int>();

for (int i = 0; i < 10; i++)
{
 Numbers.Add(i);
}

Console.Write("Numbers contains {0} elements: ", Numbers.Count);
DisplaySet(Numbers);

Numbers.Clear();
Numbers.TrimExcess();

Console.Write("Numbers contains {0} elements: ", Numbers.Count);
DisplaySet(Numbers);

void DisplaySet(HashSet<int> set)
{
 Console.Write("{");
 foreach (int i in set)
 {
 Console.Write(" {0}", i);
 }
 Console.WriteLine(" }");
}

/* This example produces output similar to the following:
* Numbers contains 10 elements: { 0 1 2 3 4 5 6 7 8 9 }
* Numbers contains 0 elements: { }
*/
let displaySet (set: HashSet<int>) =
 printf "{"

 for i in set do
 printf $" {i}"

 printfn " }"
// This example produces output similar to the following:
// Numbers contains 10 elements: { 0 1 2 3 4 5 6 7 8 9 }
// Numbers contains 0 elements: { }
let numbers = HashSet<int>()

for i = 0 to 9 do
 numbers.Add i |> ignore

printf $"Numbers contains {numbers.Count} elements: "
displaySet numbers

numbers.Clear()
numbers.TrimExcess()

printf $"Numbers contains {numbers.Count} elements: "
displaySet numbers
Imports System.Collections.Generic

Class Program

 Shared Sub Main()

 Dim Numbers As HashSet(Of Integer) = New HashSet(Of Integer)()

 For i As Integer = 0 To 9
 Numbers.Add(i)
 Next i

 Console.Write("Numbers contains {0} elements: ", Numbers.Count)
 DisplaySet(Numbers)

 Numbers.Clear()
 Numbers.TrimExcess()

 Console.Write("Numbers contains {0} elements: ", Numbers.Count)
 DisplaySet(Numbers)

 End Sub
 ' This code example produces output similar to the following:
 ' Numbers contains 10 elements: { 0 1 2 3 4 5 6 7 8 9 }
 ' Numbers contains 0 elements: { }

 Private Shared Sub DisplaySet(ByVal coll As HashSet(Of Integer))
 Console.Write("{")
 For Each i As Integer In coll
 Console.Write(" {0}", i)
 Next i
 Console.WriteLine(" }")
 End Sub

End Class

Remarks

Count is set to zero and references to other objects from elements of the collection are also released. The capacity remains unchanged until a call to TrimExcess is made.

This method is an O(n) operation, where n is Count.

Applies to


Feedback

Was this page helpful?