HashSet<T>.TrimExcess Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
TrimExcess() |
bir HashSet<T> nesnesinin kapasitesini, içerdiği öğelerin gerçek sayısına ayarlar ve yakınlardaki uygulamaya özgü bir değere yuvarlar. |
TrimExcess(Int32) |
bir HashSet<T> nesnesinin kapasitesini belirtilen sayıda girdiye ayarlar ve yakınlardaki uygulamaya özgü bir değere yuvarlar. |
TrimExcess()
- Kaynak:
- HashSet.cs
- Kaynak:
- HashSet.cs
- Kaynak:
- HashSet.cs
bir HashSet<T> nesnesinin kapasitesini, içerdiği öğelerin gerçek sayısına ayarlar ve yakınlardaki uygulamaya özgü bir değere yuvarlar.
public:
void TrimExcess();
public void TrimExcess ();
member this.TrimExcess : unit -> unit
Public Sub TrimExcess ()
Örnekler
Aşağıdaki örnek bir HashSet<T> koleksiyonu oluşturup doldurur, sonra koleksiyonu temizler ve başvuruda bulunan belleği serbest bırakır.
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
Açıklamalar
Yeni öğe eklenmeyecek olduğu bilindikten sonra HashSet<T> nesnesinin bellek yükünü en aza indirmek için TrimExcess yöntemini kullanabilirsiniz. bir HashSet<T> nesnesini tamamen temizlemek ve başvuruda bulunan tüm belleği serbest bırakmak için, Clear yöntemini çağırdıktan sonra bu yöntemi çağırın.
Bu yöntem, n
Countolduğu bir O(n
) işlemidir.
Şunlara uygulanır
TrimExcess(Int32)
- Kaynak:
- HashSet.cs
bir HashSet<T> nesnesinin kapasitesini belirtilen sayıda girdiye ayarlar ve yakınlardaki uygulamaya özgü bir değere yuvarlar.
public:
void TrimExcess(int capacity);
public void TrimExcess (int capacity);
member this.TrimExcess : int -> unit
Public Sub TrimExcess (capacity As Integer)
Parametreler
- capacity
- Int32
Yeni kapasite.
Özel durumlar
Belirtilen kapasite girdi sayısının altında.