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