HashSet<T>.TrimExcess Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
TrimExcess() |
Mengatur kapasitas objek HashSet<T> ke jumlah elemen aktual yang dikandungnya, dibulatkan ke nilai khusus implementasi terdekat. |
TrimExcess(Int32) |
Mengatur kapasitas objek HashSet<T> ke jumlah entri yang ditentukan, dibulatkan ke nilai khusus implementasi terdekat. |
TrimExcess()
- Sumber:
- HashSet.cs
- Sumber:
- HashSet.cs
- Sumber:
- HashSet.cs
Mengatur kapasitas objek HashSet<T> ke jumlah elemen aktual yang dikandungnya, dibulatkan ke nilai khusus implementasi terdekat.
public:
void TrimExcess();
public void TrimExcess ();
member this.TrimExcess : unit -> unit
Public Sub TrimExcess ()
Contoh
Contoh berikut membuat dan mengisi koleksi HashSet<T>, lalu menghapus koleksi dan merilis memori yang dirujuk olehnya.
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
Keterangan
Anda dapat menggunakan metode TrimExcess untuk meminimalkan overhead memori objek HashSet<T> setelah diketahui bahwa tidak ada elemen baru yang akan ditambahkan. Untuk menghapus objek HashSet<T> sepenuhnya dan melepaskan semua memori yang dirujuk olehnya, panggil metode ini setelah memanggil metode Clear.
Metode ini adalah operasi O(n
), di mana n
Count.
Berlaku untuk
TrimExcess(Int32)
- Sumber:
- HashSet.cs
Mengatur kapasitas objek HashSet<T> ke jumlah entri yang ditentukan, dibulatkan ke nilai khusus implementasi terdekat.
public:
void TrimExcess(int capacity);
public void TrimExcess (int capacity);
member this.TrimExcess : int -> unit
Public Sub TrimExcess (capacity As Integer)
Parameter
- capacity
- Int32
Kapasitas baru.
Pengecualian
Kapasitas yang ditentukan lebih rendah dari jumlah entri.