C# | Setting the capacity to the actual number of elements in a SortedList object
SortedList.TrimToSize Method is used to set the capacity to the actual number of elements in a SortedList object.
Syntax:
public virtual void TrimToSize ();
Exception: This method will throw NotSupportedException if the SortedList object is read-only or SortedList has a fixed size.
Below programs illustrate the use of above-discussed method:
Example 1:
CSharp
// C# program to illustrate the // SortedList.TrimToSize() Method using System; using System.Collections; class GFG { // Main method public static void Main() { // create and initialize new SortedList SortedList mylist = new SortedList(); // Adding elements to SortedList mylist.Add( "1" , "C++" ); mylist.Add( "2" , "Java" ); mylist.Add( "3" , "DSA" ); mylist.Add( "4" , "Python" ); mylist.Add( "5" , "C#" ); mylist.Add( "6" , "HTML" ); // Capacity of SortedList before trimmimg Console.WriteLine( "Before trimming the capacity is: {0}" , mylist.Capacity); // trim the SortedList mylist.TrimToSize(); // Capacity of ArrayList after trimming Console.WriteLine( "After trimming the capacity is: {0}" , mylist.Capacity); } } |
Output:
Before trimming the capacity is: 16 After trimming the capacity is: 6
Example 2:
CSharp
// C# program to illustrate // SortedList.TrimToSize() Method using System; using System.Collections; class GFG { // Main Method public static void Main() { // create and initialize new SortedList SortedList mylist = new SortedList(); // Adding elements to SortedList mylist.Add( "h" , "Hello" ); mylist.Add( "g" , "Beginner!" ); mylist.Add( "w" , "Welcome" ); mylist.Add( "t" , "to" ); mylist.Add( "n" , "Noida" ); // Displaying the count, capacity // and values of the SortedList. Console.WriteLine( "Before Using TrimToSize Method:" ); Console.WriteLine(); Console.WriteLine( "Count: {0}" , mylist.Count); Console.WriteLine( "Capacity: {0}" , mylist.Capacity); Console.Write( "Values are: " ); Display(mylist); Console.WriteLine(); // Trim the SortedList. mylist.TrimToSize(); // Displaying the count, capacity // and values of the SortedList. Console.WriteLine(); Console.WriteLine( "After Using TrimToSize Method:" ); Console.WriteLine(); Console.WriteLine( "Count: {0}" , mylist.Count); Console.WriteLine( "Capacity: {0}" , mylist.Capacity); Console.Write( "Values are: " ); Display(mylist); // Clear the SortedList mylist.Clear(); Console.WriteLine(); // Displaying the count, capacity // and values of the SortedList. Console.WriteLine(); Console.WriteLine( "After Using Clear Method:" ); Console.WriteLine(); Console.WriteLine( "Count: {0}" , mylist.Count); Console.WriteLine( "Capacity: {0}" , mylist.Capacity); Console.Write( "Values are: " ); Display(mylist); // again trim the SortedList mylist.TrimToSize(); Console.WriteLine(); // Displaying the count, capacity // and values of the SortedList. Console.WriteLine(); Console.WriteLine( "After Again Using TrimToSize Method:" ); Console.WriteLine(); Console.WriteLine( "Count: {0}" , mylist.Count); Console.WriteLine( "Capacity: {0}" , mylist.Capacity); Console.Write( "Values are: " ); Display(mylist); } // to display the values of SortedList public static void Display(SortedList mylist) { // taking an IList and // using GetValueList method IList vlist = mylist.GetValueList(); for ( int i = 0; i < mylist.Count; i++) Console.Write(vlist[i] + " " ); } } |
Output:
Before Using TrimToSize Method: Count: 5 Capacity: 16 Values are: Beginner! Hello Noida to Welcome After Using TrimToSize Method: Count: 5 Capacity: 5 Values are: Beginner! Hello Noida to Welcome After Using Clear Method: Count: 0 Capacity: 5 Values are: After Again Using TrimToSize Method: Count: 0 Capacity: 0 Values are:
Note:
- The main use of this method is that it can be used to minimize a collection’s memory overhead if no new elements will be added to the collection.
- To reset a SortedList object to its initial state, call the Clear method before calling TrimToSize. Trimming an empty SortedList set the capacity of the SortedList to the default capacity.
- This method is an O(n) operation, where n is Count.
Reference:
- https://docs.microsoft.com/en-us/dotnet/api/system.collections.sortedlist.trimtosize?view=netframework-4.7.2