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 objektu HashSet<T> na skutečný počet prvků, které obsahuje, zaokrouhlené nahoru na nejbližší hodnotu specifickou pro implementaci. |
TrimExcess(Int32) |
TrimExcess()
- Zdroj:
- HashSet.cs
- Zdroj:
- HashSet.cs
- Zdroj:
- HashSet.cs
Nastaví kapacitu objektu HashSet<T> na skutečný počet prvků, které obsahuje, zaokrouhlené 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: { }
*/
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
Pomocí metody můžete TrimExcess minimalizovat režii paměti objektu HashSet<T> , jakmile bude známo, že nebudou přidány žádné nové prvky. Chcete-li zcela vymazat objekt a uvolnit veškerou HashSet<T> paměť, na kterou odkazuje, zavolejte tuto metodu Clear po volání metody .
Tato metoda je operace O(n
), kde n
je Count.
Platí pro
TrimExcess(Int32)
- Zdroj:
- HashSet.cs
public:
void TrimExcess(int capacity);
public void TrimExcess (int capacity);
member this.TrimExcess : int -> unit
Public Sub TrimExcess (capacity As Integer)
Parametry
- capacity
- Int32
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro