C# | Método List.TrimExcess

El método List<T>.TrimExcess se usa para establecer la capacidad en el número real de elementos en List<T>, si ese número es menor que un valor de umbral.

Sintaxis:

public void TrimExcess ();

Nota:

  • Este método se puede usar para minimizar la sobrecarga de memoria de una colección si no se agregarán nuevos elementos a la colección.
  • Para restablecer List<T> a su estado inicial, llame al método Clear antes de llamar al método TrimExcess.
  • Recortar una List<T> vacía establece la capacidad de List<T> en la capacidad predeterminada.
  • Sin embargo, el costo de reasignar y copiar una List<T> grande puede ser considerable, por lo que el método TrimExcess no hace nada si la lista está a más del 90 por ciento de su capacidad. Esto evita incurrir en un gran costo de reasignación por una ganancia relativamente pequeña.
  • Este método es una operación O(n), donde n es Count.

Los siguientes programas ilustran el uso del método List<T>.TrimExcess :

Ejemplo 1:

// C# code to set the capacity to the
// actual number of elements in the List
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a List of strings
        List<string> mylist = new List<string>();
  
        // Inserting elements into List
        mylist.Add("1");
        mylist.Add("2");
        mylist.Add("3");
        mylist.Add("4");
        mylist.Add("5");
  
        // To  display the capacity of list
        Console.WriteLine(mylist.Capacity);
  
        // To display number of elements in List
        Console.WriteLine(mylist.Count);
  
        // using TrimExcess method
        mylist.TrimExcess();
  
        // To  display the capacity of list
        Console.WriteLine(mylist.Capacity);
  
        // To display number of elements in List
        Console.WriteLine(mylist.Count);
    }
}

Producción:

8
5
5
5

Ejemplo 2:

// C# code to set the capacity to the
// actual number of elements in the List
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a List of integers
        List<int> mylist = new List<int>();
  
        // Inserting elements into List
        mylist.Add(45);
        mylist.Add(78);
        mylist.Add(32);
        mylist.Add(231);
        mylist.Add(123);
        mylist.Add(76);
        mylist.Add(726);
        mylist.Add(716);
        mylist.Add(876);
  
        // To  display the capacity of list
        Console.WriteLine(mylist.Capacity);
  
        // To display number of elements in List
        Console.WriteLine(mylist.Count);
  
        // using TrimExcess method
        mylist.TrimExcess();
  
        // To  display the capacity of list
        Console.WriteLine(mylist.Capacity);
  
        // To display number of elements in List
        Console.WriteLine(mylist.Count);
  
        // using clear method
        mylist.Clear();
  
        // To  display the capacity of list
        Console.WriteLine(mylist.Capacity);
  
        // To display number of elements in List
        Console.WriteLine(mylist.Count);
    }
}

Producción:

16
9
9
9
9
0

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 *