Свойство 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,
который хранит элементы в динамическом списке