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