Open In App

C# | Setting the capacity to the actual number of elements in a SortedList object

Improve
Improve
Like Article
Like
Save
Share
Report

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", "Geeks!");
        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: Geeks! Hello Noida to Welcome 

After Using TrimToSize Method:

Count: 5
Capacity: 5
Values are: Geeks! 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: 
 

 



Last Updated : 04 Aug, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads