Метод TrimExcess
Метод TrimExcess класса
HashSet<T>
сжимает внутренний буфер до размера, нужного
для текущего числа элементов. Состав множества
не меняется; метод возвращает void.
Синтаксис
set.TrimExcess();
Пример
Давайте ужать множество после массового добавления:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
HashSet<int> nums = new HashSet<int>();
nums.EnsureCapacity(100);
nums.Add(1);
nums.Add(2);
nums.Add(3);
nums.TrimExcess();
Console.WriteLine(nums.Count);
}
}
Результат выполнения кода:
3
Пример
Давайте проверить, что элементы остались на месте:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
HashSet<int> nums = new HashSet<int> {1, 2, 3, 4, 5};
nums.TrimExcess();
Console.WriteLine(nums.Contains(4));
}
}
Результат выполнения кода:
True
Пример
Давайте ужать после удаления части элементов:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
HashSet<string> items = new HashSet<string> {"a", "b", "c", "d", "e"};
items.EnsureCapacity(50);
items.Remove("d");
items.Remove("e");
items.TrimExcess();
Console.WriteLine(items.Count);
Console.WriteLine(items.Contains("a"));
}
}
Результат выполнения кода:
3
True
Смотрите также
-
метод
EnsureCapacity,
который заранее увеличивает ёмкость -
метод
Clear,
который удаляет все элементы -
метод
TrimExcess,
который ужимает список -
свойство
Count,
которое не меняется после TrimExcess