HashSet<T>.TrimExcess Method ()


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Sets the capacity of a HashSet<T> object to the actual number of elements it contains, rounded up to a nearby, implementation-specific value.

Namespace:   System.Collections.Generic
Assembly:  System.Core (in System.Core.dll)

public void TrimExcess()

You can use the TrimExcess method to minimize a HashSet<T> object's memory overhead once it is known that no new elements will be added. To completely clear a HashSet<T> object and release all memory referenced by it, call this method after calling the Clear method.

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

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

static void Main()
    HashSet<int> Numbers = new HashSet<int>();

    for (int i = 0; i < 10; i++)

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


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

/* 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: { }

Universal Windows Platform
Available since 8
.NET Framework
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top