List<T>.Capacity Property se usa para obtener o establecer el número total de elementos que la estructura de datos interna puede contener sin cambiar el tamaño.
Propiedades de la lista:
- Es diferente de las arrays. Una lista se puede cambiar de tamaño dinámicamente, pero las arrays no.
- La clase de lista puede aceptar nulo como un valor válido para los tipos de referencia y también permite elementos duplicados.
- Si el recuento se vuelve igual a la capacidad, la capacidad de la lista aumenta automáticamente al reasignar la array interna. Los elementos existentes se copiarán en la nueva array antes de agregar el nuevo elemento.
Capacidad frente a recuento :
- El conteo siempre es menor que la capacidad. Al agregar los elementos, si Count excede la capacidad, la capacidad aumentará automáticamente al reasignar la array interna antes de copiar los elementos antiguos y agregar los elementos nuevos.
- La capacidad es el número de elementos que la lista puede almacenar antes de que sea necesario cambiar el tamaño de la lista. Pero Count es el número de elementos que están realmente presentes en la Lista.
- Si la capacidad es mucho mayor que el recuento, el usuario puede reducir la capacidad llamando al método TrimExcess o configurando explícitamente la capacidad en un valor más bajo.
- Si la capacidad se liquida explícitamente, la array interna también se reasigna para acomodar la capacidad especificada y se copian todos los elementos.
- Recuperar el valor de la propiedad Capacidad es una operación O(1) mientras que establecer la Capacidad es una operación O(n), donde n es la nueva capacidad.
Sintaxis:
public int Capacity { get; set; }
Valor devuelto: este método devuelve la cantidad de elementos que List<T> puede contener antes de que se requiera cambiar el tamaño del tipo System.Int32 .
Excepciones:
- ArgumentOutOfRangeException: si la capacidad se establece en un valor inferior a Count .
- OutOfMemoryException: si no hay suficiente memoria disponible en el sistema.
Los siguientes programas ilustran el uso de la propiedad de capacidad:
Ejemplo 1:
// C# program to illustrate the // Capacity Property of List<T> using System; using System.Collections.Generic; class Geeks { // Main Method public static void Main(String[] args) { // Creating a List of integers // Here we are not setting // Capacity explicitly List<int> firstlist = new List<int>(); // adding elements in firstlist firstlist.Add(1); firstlist.Add(2); firstlist.Add(3); firstlist.Add(4); // Printing the Capacity of firstlist Console.WriteLine("Capacity Is: " + firstlist.Capacity); // Printing the Count of firstlist Console.WriteLine("Count Is: " + firstlist.Count); // Adding some more // elements in firstlist firstlist.Add(5); firstlist.Add(6); // Printing the Capacity of firstlist // It will give output 8 as internally // List is resized Console.WriteLine("Capacity Is: " + firstlist.Capacity); // Printing the Count of firstlist Console.WriteLine("Count Is: " + firstlist.Count); } }
Producción:
Capacity Is: 4 Count Is: 4 Capacity Is: 8 Count Is: 6
Ejemplo 2:
// C# program to illustrate the // Capacity Property of List<T> using System; using System.Collections.Generic; class Geeks { // Main Method public static void Main(String[] args) { // Creating a List of integers // Here we are setting Capacity // explicitly i.e. List<int> firstlist = new List<int>(10); // Printing the Capacity of firstlist Console.WriteLine("Capacity Is: " + firstlist.Capacity); // Printing the Count of firstlist Console.WriteLine("Count Is: " + firstlist.Count); // adding elements in firstlist firstlist.Add(1); firstlist.Add(2); firstlist.Add(3); firstlist.Add(4); // Printing the Capacity of firstlist Console.WriteLine("Capacity Is: " + firstlist.Capacity); // Printing the Count of firstlist Console.WriteLine("Count Is: " + firstlist.Count); // Adding some more // elements in firstlist firstlist.Add(5); firstlist.Add(6); // Printing the Capacity of firstlist // It will give output 10 as we have // already set the Capacity Console.WriteLine("Capacity Is: " + firstlist.Capacity); // Printing the Count of firstlist Console.WriteLine("Count Is: " + firstlist.Count); } }
Producción:
Capacity Is: 10 Count Is: 0 Capacity Is: 10 Count Is: 4 Capacity Is: 10 Count Is: 6
Referencia:
Publicación traducida automáticamente
Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA