HashSet<T>.TrimExcess Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
TrimExcess() |
Nastaví kapacitu HashSet<T> objektu na skutečný počet prvků, které obsahuje, zaokrouhleno nahoru na nejbližší hodnotu specifickou pro implementaci. |
TrimExcess(Int32) |
Nastaví kapacitu objektu HashSet<T> na zadaný počet položek zaokrouhlených nahoru na nejbližší hodnotu specifickou pro implementaci. |
TrimExcess()
- Zdroj:
- HashSet.cs
- Zdroj:
- HashSet.cs
- Zdroj:
- HashSet.cs
Nastaví kapacitu HashSet<T> objektu na skutečný počet prvků, které obsahuje, zaokrouhleno nahoru na nejbližší hodnotu specifickou pro implementaci.
public:
void TrimExcess();
public void TrimExcess ();
member this.TrimExcess : unit -> unit
Public Sub TrimExcess ()
Příklady
Následující příklad vytvoří a naplní kolekci HashSet<T> a pak vymaže kolekci a uvolní paměť, na kterou odkazuje.
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
Poznámky
Metodu TrimExcess můžete použít k minimalizaci režie paměti HashSet<T> objektu, jakmile je známo, že nebudou přidány žádné nové prvky. Chcete-li zcela vymazat objekt HashSet<T> a uvolnit veškerou paměť, na kterou odkazuje, zavolejte tuto metodu po volání metody Clear.
Tato metoda je operace O(n
), kde n
je Count.
Platí pro
TrimExcess(Int32)
- Zdroj:
- HashSet.cs
Nastaví kapacitu objektu HashSet<T> na zadaný počet položek zaokrouhlených nahoru na nejbližší hodnotu specifickou pro implementaci.
public:
void TrimExcess(int capacity);
public void TrimExcess (int capacity);
member this.TrimExcess : int -> unit
Public Sub TrimExcess (capacity As Integer)
Parametry
- capacity
- Int32
Nová kapacita.
Výjimky
Zadaná kapacita je nižší než počet položek.