Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
381 of 1492 menu
◀ ▶

Свойство Capacity

Свойство Capacity класса List<T> показывает, сколько элементов может поместиться во внутреннем массиве без перераспределения памяти. Capacity может быть больше Count, но не меньше числа элементов в списке.

Синтаксис

int capacity = list.Capacity; list.Capacity = value;

Пример

Давайте создадим список с заданной начальной ёмкостью:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int>(10); nums.Add(1); Console.WriteLine(nums.Count); Console.WriteLine(nums.Capacity >= 10); } }

Результат выполнения кода:

1 True

Пример

Давайте заранее увеличим запас через EnsureCapacity и проверим условие:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; nums.EnsureCapacity(20); Console.WriteLine(nums.Capacity >= 20); } }

Результат выполнения кода:

True

Пример

Давайте после TrimExcess сравним Capacity с Count:

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

Пример

Давайте зададим Capacity явно, если знаем верхнюю границу размера:

using System; using System.Collections.Generic; class Program { static void Main() { List<int> nums = new List<int> {1, 2, 3, 4, 5}; nums.Capacity = 100; Console.WriteLine(nums.Capacity >= 100); } }

Результат выполнения кода:

True

Смотрите также

  • свойство Count,
    которое возвращает число элементов
  • метод EnsureCapacity,
    который заранее расширяет буфер
  • метод TrimExcess,
    который убирает лишний запас
  • класс List,
    который хранит элементы в динамическом списке
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить