SortedList.TrimToSize Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Establece la capacidad en el número real de elementos de un objeto SortedList.
public:
virtual void TrimToSize();
public virtual void TrimToSize ();
abstract member TrimToSize : unit -> unit
override this.TrimToSize : unit -> unit
Public Overridable Sub TrimToSize ()
Excepciones
Ejemplos
En el ejemplo de código siguiente se muestra cómo recortar las partes sin usar de un SortedList objeto y cómo borrar sus valores.
#using <system.dll>
using namespace System;
using namespace System::Collections;
void PrintKeysAndValues( SortedList^ myList )
{
Console::WriteLine( "\t-KEY-\t-VALUE-" );
for ( int i = 0; i < myList->Count; i++ )
{
Console::WriteLine( "\t{0}:\t{1}", myList->GetKey( i ), myList->GetByIndex( i ) );
}
Console::WriteLine();
}
int main()
{
// Creates and initializes a new SortedList.
SortedList^ mySL = gcnew SortedList;
mySL->Add( "one", "The" );
mySL->Add( "two", "quick" );
mySL->Add( "three", "brown" );
mySL->Add( "four", "fox" );
mySL->Add( "five", "jumps" );
// Displays the count, capacity and values of the SortedList.
Console::WriteLine( "Initially," );
Console::WriteLine( " Count : {0}", mySL->Count );
Console::WriteLine( " Capacity : {0}", mySL->Capacity );
Console::WriteLine( " Values:" );
PrintKeysAndValues( mySL );
// Trims the SortedList.
mySL->TrimToSize();
// Displays the count, capacity and values of the SortedList.
Console::WriteLine( "After TrimToSize," );
Console::WriteLine( " Count : {0}", mySL->Count );
Console::WriteLine( " Capacity : {0}", mySL->Capacity );
Console::WriteLine( " Values:" );
PrintKeysAndValues( mySL );
// Clears the SortedList.
mySL->Clear();
// Displays the count, capacity and values of the SortedList.
Console::WriteLine( "After Clear," );
Console::WriteLine( " Count : {0}", mySL->Count );
Console::WriteLine( " Capacity : {0}", mySL->Capacity );
Console::WriteLine( " Values:" );
PrintKeysAndValues( mySL );
// Trims the SortedList again.
mySL->TrimToSize();
// Displays the count, capacity and values of the SortedList.
Console::WriteLine( "After the second TrimToSize," );
Console::WriteLine( " Count : {0}", mySL->Count );
Console::WriteLine( " Capacity : {0}", mySL->Capacity );
Console::WriteLine( " Values:" );
PrintKeysAndValues( mySL );
}
/*
This code produces the following output.
Initially,
Count : 5
Capacity : 16
Values:
-KEY- -VALUE-
five: jumps
four: fox
one: The
three: brown
two: quick
After TrimToSize,
Count : 5
Capacity : 5
Values:
-KEY- -VALUE-
five: jumps
four: fox
one: The
three: brown
two: quick
After Clear,
Count : 0
Capacity : 16
Values:
-KEY- -VALUE-
After the second TrimToSize,
Count : 0
Capacity : 16
Values:
-KEY- -VALUE-
*/
using System;
using System.Collections;
public class SamplesSortedList {
public static void Main() {
// Creates and initializes a new SortedList.
SortedList mySL = new SortedList();
mySL.Add( "one", "The" );
mySL.Add( "two", "quick" );
mySL.Add( "three", "brown" );
mySL.Add( "four", "fox" );
mySL.Add( "five", "jumps" );
// Displays the count, capacity and values of the SortedList.
Console.WriteLine( "Initially," );
Console.WriteLine( " Count : {0}", mySL.Count );
Console.WriteLine( " Capacity : {0}", mySL.Capacity );
Console.WriteLine( " Values:" );
PrintKeysAndValues( mySL );
// Trims the SortedList.
mySL.TrimToSize();
// Displays the count, capacity and values of the SortedList.
Console.WriteLine( "After TrimToSize," );
Console.WriteLine( " Count : {0}", mySL.Count );
Console.WriteLine( " Capacity : {0}", mySL.Capacity );
Console.WriteLine( " Values:" );
PrintKeysAndValues( mySL );
// Clears the SortedList.
mySL.Clear();
// Displays the count, capacity and values of the SortedList.
Console.WriteLine( "After Clear," );
Console.WriteLine( " Count : {0}", mySL.Count );
Console.WriteLine( " Capacity : {0}", mySL.Capacity );
Console.WriteLine( " Values:" );
PrintKeysAndValues( mySL );
// Trims the SortedList again.
mySL.TrimToSize();
// Displays the count, capacity and values of the SortedList.
Console.WriteLine( "After the second TrimToSize," );
Console.WriteLine( " Count : {0}", mySL.Count );
Console.WriteLine( " Capacity : {0}", mySL.Capacity );
Console.WriteLine( " Values:" );
PrintKeysAndValues( mySL );
}
public static void PrintKeysAndValues( SortedList myList ) {
Console.WriteLine( "\t-KEY-\t-VALUE-" );
for ( int i = 0; i < myList.Count; i++ ) {
Console.WriteLine( "\t{0}:\t{1}", myList.GetKey(i), myList.GetByIndex(i) );
}
Console.WriteLine();
}
}
/*
This code produces the following output.
Initially,
Count : 5
Capacity : 16
Values:
-KEY- -VALUE-
five: jumps
four: fox
one: The
three: brown
two: quick
After TrimToSize,
Count : 5
Capacity : 5
Values:
-KEY- -VALUE-
five: jumps
four: fox
one: The
three: brown
two: quick
After Clear,
Count : 0
Capacity : 16
Values:
-KEY- -VALUE-
After the second TrimToSize,
Count : 0
Capacity : 16
Values:
-KEY- -VALUE-
*/
Imports System.Collections
Public Class SamplesSortedList
Public Shared Sub Main()
' Creates and initializes a new SortedList.
Dim mySL As New SortedList()
mySL.Add("one", "The")
mySL.Add("two", "quick")
mySL.Add("three", "brown")
mySL.Add("four", "fox")
mySL.Add("five", "jumps")
' Displays the count, capacity and values of the SortedList.
Console.WriteLine("Initially,")
Console.WriteLine(" Count : {0}", mySL.Count)
Console.WriteLine(" Capacity : {0}", mySL.Capacity)
Console.WriteLine(" Values:")
PrintKeysAndValues(mySL)
' Trims the SortedList.
mySL.TrimToSize()
' Displays the count, capacity and values of the SortedList.
Console.WriteLine("After TrimToSize,")
Console.WriteLine(" Count : {0}", mySL.Count)
Console.WriteLine(" Capacity : {0}", mySL.Capacity)
Console.WriteLine(" Values:")
PrintKeysAndValues(mySL)
' Clears the SortedList.
mySL.Clear()
' Displays the count, capacity and values of the SortedList.
Console.WriteLine("After Clear,")
Console.WriteLine(" Count : {0}", mySL.Count)
Console.WriteLine(" Capacity : {0}", mySL.Capacity)
Console.WriteLine(" Values:")
PrintKeysAndValues(mySL)
' Trims the SortedList again.
mySL.TrimToSize()
' Displays the count, capacity and values of the SortedList.
Console.WriteLine("After the second TrimToSize,")
Console.WriteLine(" Count : {0}", mySL.Count)
Console.WriteLine(" Capacity : {0}", mySL.Capacity)
Console.WriteLine(" Values:")
PrintKeysAndValues(mySL)
End Sub
Public Shared Sub PrintKeysAndValues(myList As SortedList)
Console.WriteLine(ControlChars.Tab & "-KEY-" & ControlChars.Tab & _
"-VALUE-")
Dim i As Integer
For i = 0 To myList.Count - 1
Console.WriteLine(ControlChars.Tab & "{0}:" & ControlChars.Tab & _
"{1}", myList.GetKey(i), myList.GetByIndex(i))
Next i
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' Initially,
' Count : 5
' Capacity : 16
' Values:
' -KEY- -VALUE-
' five: jumps
' four: fox
' one: The
' three: brown
' two: quick
'
' After TrimToSize,
' Count : 5
' Capacity : 5
' Values:
' -KEY- -VALUE-
' five: jumps
' four: fox
' one: The
' three: brown
' two: quick
'
' After Clear,
' Count : 0
' Capacity : 16
' Values:
' -KEY- -VALUE-
'
'
' After the second TrimToSize,
' Count : 0
' Capacity : 16
' Values:
' -KEY- -VALUE-
Comentarios
Este método se puede usar para minimizar la sobrecarga de memoria de una colección si no se agregarán elementos nuevos a la colección.
Para restablecer un SortedList objeto a su estado inicial, llame al Clear método antes de llamar a TrimToSize. Al recortar un vacío, SortedList se establece la capacidad de en SortedList la capacidad predeterminada.
Este método es una O(n)
operación, donde n
es Count.