HashSet<T>.TrimExcess メソッド

定義

オーバーロード

TrimExcess()

HashSet<T> オブジェクトの容量を、含まれる要素の実際の数に設定し、近くの実装固有の値に切り上げます。

TrimExcess(Int32)

HashSet<T> オブジェクトの容量を指定したエントリ数に設定し、近くの実装固有の値に切り上げます。

TrimExcess()

ソース:
HashSet.cs
ソース:
HashSet.cs
ソース:
HashSet.cs

HashSet<T> オブジェクトの容量を、含まれる要素の実際の数に設定し、近くの実装固有の値に切り上げます。

C#
public void TrimExcess();

次の例では、HashSet<T> コレクションを作成して設定し、コレクションをクリアして、そのコレクションによって参照されるメモリを解放します。

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

注釈

TrimExcess メソッドを使用すると、新しい要素が追加されないことがわかっている場合に、HashSet<T> オブジェクトのメモリ オーバーヘッドを最小限に抑えることができます。 HashSet<T> オブジェクトを完全にクリアし、そのオブジェクトによって参照されているすべてのメモリを解放するには、Clear メソッドを呼び出した後、このメソッドを呼び出します。

このメソッドは O(n) 演算で、nCount

適用対象

.NET 10 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

TrimExcess(Int32)

ソース:
HashSet.cs

HashSet<T> オブジェクトの容量を指定したエントリ数に設定し、近くの実装固有の値に切り上げます。

C#
public void TrimExcess(int capacity);

パラメーター

capacity
Int32

新しい容量。

例外

指定された容量は、エントリの数よりも少なくなります。

適用対象

.NET 10 および .NET 9
製品 バージョン
.NET 9, 10