C# SortedSet<T>
is a class in the .NET Framework that represents a collection of unique elements that are sorted in a particular order. It is part of the System.Collections.Generic
namespace and is available in C# and other .NET languages.
Here are some key points about SortedSet<T>
:
- Ordering:
SortedSet<T>
maintains the elements in sorted order based on their natural sorting or using a custom comparer. The elements must be comparable or provide a custom comparer to determine their order. - Uniqueness:
SortedSet<T>
guarantees that all elements are unique. If you try to add a duplicate element, it will be ignored. - Performance:
SortedSet<T>
provides efficient operations for adding, removing, and searching elements. It internally uses a self-balancing binary search tree (Red-Black Tree) to ensure efficient access and modification. - Element retrieval: You can access the elements of a
SortedSet<T>
using foreach loop, LINQ queries, or by calling methods such asFirst()
,Last()
, orContains()
. - Set operations:
SortedSet<T>
supports set-based operations such as union, intersection, difference, and subset checks. You can perform these operations using methods likeUnionWith()
,IntersectWith()
,ExceptWith()
, andIsSubsetOf()
. - Comparable elements: By default,
SortedSet<T>
uses the default comparer of the element typeT
to determine the order. IfT
does not implementIComparable<T>
, you can provide a custom comparer by passing it to the constructor or using theSortedSet<T>
constructor overload that takes aComparer<T>
parameter. - Searching:
SortedSet<T>
provides efficient searching with methods such asContains()
,SetEquals()
,Overlaps()
, andIsSubsetOf()
. These methods take advantage of the sorted order to optimize the search.
Here’s an example of using SortedSet<T>
in C#:
using System; using System.Collections.Generic; class Program { static void Main() { // Creating a SortedSet of integers SortedSet<int> numbers = new SortedSet<int>(); // Adding elements to the SortedSet numbers.Add(5); numbers.Add(2); numbers.Add(8); numbers.Add(1); numbers.Add(3); // Printing the SortedSet elements in sorted order foreach (int number in numbers) { Console.WriteLine(number); } } }
Output:
1 2 3 5 8
In the above example, we create a SortedSet<int>
and add some numbers to it. The elements are automatically sorted in ascending order when we iterate over the set.
SortedSet<T>
provides a powerful and efficient way to work with sorted collections of unique elements in C#.
C# SortedSet<T> example:
Certainly! Here’s an example that demonstrates the usage of SortedSet<T>
in C#:
using System; using System.Collections.Generic; class Program { static void Main() { // Creating a SortedSet of strings SortedSet<string> colors = new SortedSet<string>(); // Adding elements to the SortedSet colors.Add("Red"); colors.Add("Green"); colors.Add("Blue"); colors.Add("Yellow"); // Printing the SortedSet elements Console.WriteLine("SortedSet elements:"); foreach (string color in colors) { Console.WriteLine(color); } // Checking if an element exists bool containsBlue = colors.Contains("Blue"); Console.WriteLine("Contains Blue: " + containsBlue); // Removing an element bool removedGreen = colors.Remove("Green"); Console.WriteLine("Removed Green: " + removedGreen); // Printing the SortedSet elements after removal Console.WriteLine("SortedSet elements after removal:"); foreach (string color in colors) { Console.WriteLine(color); } } }
Output:
SortedSet elements: Blue Green Red Yellow Contains Blue: True Removed Green: True SortedSet elements after removal: Blue Red Yellow
In this example, we create a SortedSet<string>
named colors
and add several color names to it. The elements are automatically sorted in alphabetical order. We then iterate over the set and print its elements.
Next, we check if the set contains the color “Blue” using the Contains()
method and store the result in the containsBlue
variable. We print the result to the console.
After that, we remove the color “Green” from the set using the Remove()
method and store the result in the removedGreen
variable. We print the result to the console.
Finally, we iterate over the set again and print its elements after the removal of “Green”.
This example demonstrates some basic operations such as adding elements, checking for existence, removing elements, and iterating over a SortedSet<T>
.