HashSet<T>.TrimExcess Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
TrimExcess() |
Définit la capacité d’un objet HashSet<T> sur le nombre réel d’éléments qu’il contient, arrondi à une valeur spécifique à l’implémentation proche. |
TrimExcess(Int32) |
Définit la capacité d’un objet HashSet<T> sur le nombre spécifié d’entrées, arrondie à une valeur spécifique à l’implémentation à proximité. |
TrimExcess()
- Source:
- HashSet.cs
- Source:
- HashSet.cs
- Source:
- HashSet.cs
Définit la capacité d’un objet HashSet<T> sur le nombre réel d’éléments qu’il contient, arrondi à une valeur spécifique à l’implémentation proche.
public:
void TrimExcess();
public void TrimExcess ();
member this.TrimExcess : unit -> unit
Public Sub TrimExcess ()
Exemples
L’exemple suivant crée et remplit une collection HashSet<T>, puis efface la collection et libère la mémoire référencée par celui-ci.
HashSet<int> Numbers = new HashSet<int>();
for (int i = 0; i < 10; i++)
{
Numbers.Add(i);
}
Console.Write("Numbers contains {0} elements: ", Numbers.Count);
DisplaySet(Numbers);
Numbers.Clear();
Numbers.TrimExcess();
Console.Write("Numbers contains {0} elements: ", Numbers.Count);
DisplaySet(Numbers);
void DisplaySet(HashSet<int> set)
{
Console.Write("{");
foreach (int i in set)
{
Console.Write(" {0}", i);
}
Console.WriteLine(" }");
}
/* This example produces output similar to the following:
* Numbers contains 10 elements: { 0 1 2 3 4 5 6 7 8 9 }
* Numbers contains 0 elements: { }
*/
let displaySet (set: HashSet<int>) =
printf "{"
for i in set do
printf $" {i}"
printfn " }"
// This example produces output similar to the following:
// Numbers contains 10 elements: { 0 1 2 3 4 5 6 7 8 9 }
// Numbers contains 0 elements: { }
let numbers = HashSet<int>()
for i = 0 to 9 do
numbers.Add i |> ignore
printf $"Numbers contains {numbers.Count} elements: "
displaySet numbers
numbers.Clear()
numbers.TrimExcess()
printf $"Numbers contains {numbers.Count} elements: "
displaySet numbers
Imports System.Collections.Generic
Class Program
Shared Sub Main()
Dim Numbers As HashSet(Of Integer) = New HashSet(Of Integer)()
For i As Integer = 0 To 9
Numbers.Add(i)
Next i
Console.Write("Numbers contains {0} elements: ", Numbers.Count)
DisplaySet(Numbers)
Numbers.Clear()
Numbers.TrimExcess()
Console.Write("Numbers contains {0} elements: ", Numbers.Count)
DisplaySet(Numbers)
End Sub
' This code example produces output similar to the following:
' Numbers contains 10 elements: { 0 1 2 3 4 5 6 7 8 9 }
' Numbers contains 0 elements: { }
Private Shared Sub DisplaySet(ByVal coll As HashSet(Of Integer))
Console.Write("{")
For Each i As Integer In coll
Console.Write(" {0}", i)
Next i
Console.WriteLine(" }")
End Sub
End Class
Remarques
Vous pouvez utiliser la méthode TrimExcess pour réduire la surcharge mémoire d’un objet HashSet<T> une fois qu’il est connu qu’aucun nouvel élément ne sera ajouté. Pour effacer complètement un objet HashSet<T> et libérer toute la mémoire référencée par celui-ci, appelez cette méthode après avoir appelé la méthode Clear.
Cette méthode est une opération O(n
), où n
est Count.
S’applique à
TrimExcess(Int32)
- Source:
- HashSet.cs
Définit la capacité d’un objet HashSet<T> sur le nombre spécifié d’entrées, arrondie à une valeur spécifique à l’implémentation à proximité.
public:
void TrimExcess(int capacity);
public void TrimExcess (int capacity);
member this.TrimExcess : int -> unit
Public Sub TrimExcess (capacity As Integer)
Paramètres
- capacity
- Int32
Nouvelle capacité.
Exceptions
La capacité spécifiée est inférieure au nombre d’entrées.