C# | Capacidad de una lista – Part 2

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 Count se vuelve igual a Capacity, entonces la capacidad de List aumenta automáticamente al reasignar el arreglo interno. 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 establece 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *