SortedSet
Often we must create a List
of items and then sort it. With a SortedSet
, we can keep the elements sorted as we add them, potentially improving performance.
And with this collection, we can ensure no duplicate elements are added. The SortedSet
thus is a good way to have a collection of unique, ordered items.
This program uses the SortedSet
collection: it adds 3 strings to a SortedSet
of Strings. It then uses the For-Each
loop on the SortedSet
.
Contains()
to see if an element is in the set. We can quickly test to see whether the set contains something.Module Module1 Sub Main() ' Create new SortedSet. Dim sorted = New SortedSet(Of String)() sorted.Add("carrot") sorted.Add("apple") sorted.Add("bird") ' Loop over items in SortedSet. For Each item As String In sorted Console.WriteLine("SORTEDSET: {0}", item) Next ' See if SortedSet contains a string. If sorted.Contains("bird") Then Console.WriteLine("CONTAINS bird") End If End Sub End ModuleSORTEDSET: apple SORTEDSET: bird SORTEDSET: carrot CONTAINS bird
Does any element in the SortedSet
also occur in another collection? The Overlaps method will test a SortedSet
against an IEnumerable
—this means a List
or array (usually).
SortedSet
, and a List
. The value 20 occurs in both collections, so Overlaps returns true.Module Module1 Sub Main() Dim sorted = New SortedSet(Of Integer)() sorted.Add(10) sorted.Add(20) Dim list = New List(Of Integer)() list.Add(20) list.Add(30) ' One element is the same, so Overlaps returns true. If sorted.Overlaps(list) Then Console.WriteLine("OVERLAPS = true") End If ' Create an empty array. ' ... The Overlaps method will then return false. Dim array(-1) As Integer If sorted.Overlaps(array) Then Console.WriteLine("NOT REACHED") End If End Sub End ModuleOVERLAPS = true
It is possible to use SortedSet
to improve performance. It lets us eliminate duplicates, and keep a collection sorted, as we go along.
SortedSet
is automatically restricted to distinct elements.We explored the SortedSet
generic collection in VB.NET. String
elements, Integer elements, or many other types can be used in a SortedSet
.