Updated January 2024
Two immutable sorted collections are available: ImmutableSortedDictionary
and ImmutableSortedSet<>
. Below is an example illustrating how to construct an immutable sorted collection using a builder.
var builder = ImmutableSortedSet.CreateBuilder<Person>();
foreach (var person in people)
{
_ = builder.Add(person);
}
var collection = builder.ToImmutable();
You also have the option to utilize CreateRange()
.
var collection = ImmutableSortedDictionary.CreateRange(personDictionary);
Benchmark Results
Here are the performance results. As evident, the ImmutableSortedDictionary<,>
consistently shows lower performance compared to the ImmutableSortedSet<>
in both scenarios. Furthermore, using CreateRange()
proves to be more performant than employing CreateBuilder()
with foreach()
.
I’d like to emphasize that employing a regular List<>
with the Sort()
method tends to be more efficient than opting for an immutable sorted collection.
Allocations: ImmutableSortedDictionary<,>: 1,008 – 114,801 bytes. ImmutableSortedSet<>: 856 – 98,392 bytes. ImmutableList<> + Sort(): 1,808 – 213,137 bytes.
Allocations: ImmurableSortedDictionary<,>: 2,536 – 262,745 bytes. ImmutableSortedSet<>: 1,008 – 114, 800 bytes.
Pick up any books by David McCarter by going to Amazon.com: http://bit.ly/RockYourCodeBooks
Make a one-time donation
Make a monthly donation
Make a yearly donation
Choose an amount
Or enter a custom amount
Your contribution is appreciated.
Your contribution is appreciated.
Your contribution is appreciated.
DonateDonate monthlyDonate yearlyIf you liked this article, please buy David a cup of Coffee by going here: https://www.buymeacoffee.com/dotnetdave
© The information in this article is copywritten and cannot be preproduced in any way without express permission from David McCarter.