System.Collections.Immutable 8.0.0

About

This package provides collections that are thread safe and guaranteed to never change their contents, also known as immutable collections. Like strings, any methods that perform modifications will not change the existing instance but instead return a new instance. For efficiency reasons, the implementation uses a sharing mechanism to ensure that newly created instances share as much data as possible with the previous instance while ensuring that operations have a predictable time complexity.

The System.Collections.Immutable library is built-in as part of the shared framework in .NET Runtime. The package can be installed when you need to use it in other target frameworks.

How to Use

using System.Collections.Immutable;

// Create immutable set of strings
ImmutableHashSet<string> colors = ImmutableHashSet.Create("Red", "Green", "Blue");

// Create a new set by adding and removing items from the original set
ImmutableHashSet<string> colorsModified = colors.Remove("Red").Add("Orange");

foreach (string s in colorsModified)
{
    Console.WriteLine(s);
}

/* Example output:
 Blue
 Green
 Orange
 */

Main Types

The main types provided by this library are:

  • System.Collections.Immutable.ImmutableArray
  • System.Collections.Immutable.ImmutableArray<T>
  • System.Collections.Immutable.ImmutableDictionary
  • System.Collections.Immutable.ImmutableDictionary<TKey,TValue>
  • System.Collections.Immutable.ImmutableHashSet
  • System.Collections.Immutable.ImmutableHashSet<T>
  • System.Collections.Immutable.ImmutableList
  • System.Collections.Immutable.ImmutableList<T>
  • System.Collections.Immutable.ImmutableQueue
  • System.Collections.Immutable.ImmutableQueue<T>
  • System.Collections.Immutable.ImmutableSortedDictionary
  • System.Collections.Immutable.ImmutableSortedDictionary<TKey,TValue>
  • System.Collections.Immutable.ImmutableSortedSet
  • System.Collections.Immutable.ImmutableSortedSet<T>
  • System.Collections.Immutable.ImmutableStack
  • System.Collections.Immutable.ImmutableStack<T>
  • System.Collections.Frozen.FrozenDictionary
  • System.Collections.Frozen.FrozenDictionary<TKey, TValue>
  • System.Collections.Frozen.FrozenSet
  • System.Collections.Frozen.FrozenSet<T>

Additional Documentation

Feedback & Contributing

System.Collections.Immutable is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.

Showing the top 20 packages that depend on System.Collections.Immutable.

Packages Downloads
protobuf-net.Core
Provides simple access to fast and efficient "Protocol Buffers" serialization from .NET applications
13
Microsoft.CodeAnalysis.Scripting.Common
Microsoft .NET Compiler Platform ("Roslyn") shared scripting package. Do not install this package manually, it will be added as a prerequisite by other packages that require it. This package was built from the source at https://github.com/dotnet/roslyn/commit/ec1cde8b77c7bca654888681037f55aa0e62dd19
13
Microsoft.NETCore.App
A set of .NET API's that are included in the default .NET Core application model. 1632fa1589b0eee3277a8841ce1770e554ece037 When using NuGet 3.x this package requires at least version 3.4.
13
Microsoft.CodeAnalysis.CSharp
.NET Compiler Platform ("Roslyn") support for C#, Microsoft.CodeAnalysis.CSharp.dll. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/bf8791d0d1be92c24e56cefa52aa139e2b5340c2.
13
Microsoft.CodeAnalysis.CSharp
.NET Compiler Platform ("Roslyn") support for C#, Microsoft.CodeAnalysis.CSharp.dll. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/f99bb16a395e48a05520ba7af1549b20bfdeee36.
13
Microsoft.CodeAnalysis.Common
A shared package used by the Microsoft .NET Compiler Platform ("Roslyn"). Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/4c32f5e4e9c0828a94fd4d1c9c0994082c85aaf3.
13
protobuf-net.Core
Provides simple access to fast and efficient "Protocol Buffers" serialization from .NET applications
12
SixLabors.Fonts
A cross-platform library for loading and laying out for processing and measuring; written in C#
12
Microsoft.CodeAnalysis.Scripting.Common
Microsoft .NET Compiler Platform ("Roslyn") shared scripting package. Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/bff1470cd9b1d44df8450e794bed97a64657c2a7
12
Microsoft.CodeAnalysis.Scripting.Common
Microsoft .NET Compiler Platform ("Roslyn") shared scripting package. Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/bf8791d0d1be92c24e56cefa52aa139e2b5340c2.
12
Microsoft.NETCore.App
A set of .NET API's that are included in the default .NET Core application model. When using NuGet 3.x this package requires at least version 3.4.
12
Microsoft.NETCore.App
A set of .NET API's that are included in the default .NET Core application model. 290303f510986f8f832fd2dc9e313cebe06ec68d When using NuGet 3.x this package requires at least version 3.4.
12
Microsoft.NETCore.App
A set of .NET API's that are included in the default .NET Core application model. e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d When using NuGet 3.x this package requires at least version 3.4.
12
Microsoft.NETCore.App
A set of .NET API's that are included in the default .NET Core application model. 2d61d0b043915bc948ebf98836fefe9ba942be11 When using NuGet 3.x this package requires at least version 3.4.
12
Microsoft.NETCore.App
A set of .NET API's that are included in the default .NET Core application model. 3f4f8eebd842c5f7f8b2941828c75384c2e2f1ab When using NuGet 3.x this package requires at least version 3.4.
12
Microsoft.NETCore.App
A set of .NET API's that are included in the default .NET Core application model. dcedc87d22ffdc1b86b6a1217dec61c4802ab517 When using NuGet 3.x this package requires at least version 3.4.
12
Microsoft.NETCore.App
A set of .NET API's that are included in the default .NET Core application model. 85255dde3ecd86987236868a0415acd3265258d2 When using NuGet 3.x this package requires at least version 3.4.
12

https://go.microsoft.com/fwlink/?LinkID=799421

.NET Framework 4.6.2

.NET 6.0

.NET 7.0

  • No dependencies.

.NET 8.0

  • No dependencies.

.NET Standard 2.0

Version Downloads Last updated
10.0.0 1 12/08/2025
10.0.0-rc.2.25502.107 4 10/26/2025
10.0.0-rc.1.25451.107 6 09/10/2025
10.0.0-preview.7.25380.108 6 09/05/2025
10.0.0-preview.6.25358.103 8 07/30/2025
10.0.0-preview.5.25277.114 7 07/30/2025
10.0.0-preview.4.25258.110 9 05/22/2025
10.0.0-preview.3.25171.5 8 05/22/2025
10.0.0-preview.2.25163.2 9 05/22/2025
10.0.0-preview.1.25080.5 9 03/07/2025
9.0.11 0 11/11/2025
9.0.10 4 10/27/2025
9.0.9 5 09/11/2025
9.0.8 6 09/05/2025
9.0.7 8 07/30/2025
9.0.6 8 07/30/2025
9.0.5 9 05/23/2025
9.0.4 8 05/23/2025
9.0.3 8 05/23/2025
9.0.2 9 03/07/2025
9.0.1 9 03/07/2025
9.0.0 9 03/07/2025
9.0.0-rc.2.24473.5 9 03/07/2025
9.0.0-rc.1.24431.7 9 03/07/2025
9.0.0-preview.7.24405.7 9 03/07/2025
9.0.0-preview.6.24327.7 10 03/07/2025
9.0.0-preview.5.24306.7 9 03/07/2025
9.0.0-preview.4.24266.19 9 03/07/2025
9.0.0-preview.3.24172.9 9 03/07/2025
9.0.0-preview.2.24128.5 9 03/07/2025
9.0.0-preview.1.24080.9 10 03/07/2025
8.0.0 9 03/07/2025
8.0.0-rc.2.23479.6 9 03/07/2025
8.0.0-rc.1.23419.4 10 03/07/2025
8.0.0-preview.7.23375.6 9 03/07/2025
8.0.0-preview.6.23329.7 9 03/07/2025
8.0.0-preview.5.23280.8 10 03/07/2025
8.0.0-preview.4.23259.5 9 03/07/2025
8.0.0-preview.3.23174.8 9 03/07/2025
8.0.0-preview.2.23128.3 9 03/07/2025
8.0.0-preview.1.23110.8 9 03/07/2025
7.0.0 9 03/07/2025
7.0.0-rc.2.22472.3 9 03/07/2025
7.0.0-rc.1.22426.10 10 03/07/2025
7.0.0-preview.7.22375.6 9 03/07/2025
7.0.0-preview.6.22324.4 10 03/07/2025
7.0.0-preview.5.22301.12 10 03/07/2025
7.0.0-preview.4.22229.4 9 03/07/2025
7.0.0-preview.3.22175.4 9 03/07/2025
7.0.0-preview.2.22152.2 10 03/07/2025
7.0.0-preview.1.22076.8 10 03/07/2025
6.0.1 9 03/07/2025
6.0.0 10 03/07/2025
6.0.0-rc.2.21480.5 9 03/07/2025
6.0.0-rc.1.21451.13 9 03/07/2025
6.0.0-preview.7.21377.19 9 03/07/2025
6.0.0-preview.6.21352.12 9 03/07/2025
6.0.0-preview.5.21301.5 9 03/07/2025
6.0.0-preview.4.21253.7 10 03/07/2025
6.0.0-preview.3.21201.4 9 03/07/2025
6.0.0-preview.2.21154.6 10 03/07/2025
6.0.0-preview.1.21102.12 9 03/07/2025
5.0.0 10 03/07/2025
5.0.0-rc.2.20475.5 9 03/07/2025
5.0.0-rc.1.20451.14 9 03/07/2025
5.0.0-preview.8.20407.11 10 03/07/2025
5.0.0-preview.7.20364.11 10 03/07/2025
5.0.0-preview.6.20305.6 10 03/07/2025
5.0.0-preview.5.20278.1 9 03/07/2025
5.0.0-preview.4.20251.6 9 03/07/2025
5.0.0-preview.3.20214.6 9 03/07/2025
5.0.0-preview.2.20160.6 10 03/07/2025
5.0.0-preview.1.20120.5 9 03/07/2025
1.7.1 9 03/07/2025
1.7.0 9 03/07/2025
1.7.0-preview3.19551.4 10 03/07/2025
1.7.0-preview2.19523.17 9 03/07/2025
1.7.0-preview1.19504.10 9 03/07/2025
1.6.0 9 03/07/2025
1.6.0-rc1.19456.4 9 03/07/2025
1.6.0-preview9.19421.4 9 03/07/2025
1.6.0-preview9.19416.11 9 03/07/2025
1.6.0-preview8.19405.3 10 03/07/2025
1.6.0-preview7.19362.9 9 03/07/2025
1.6.0-preview6.19303.8 10 03/07/2025
1.6.0-preview6.19264.9 10 03/07/2025
1.6.0-preview5.19224.8 11 03/07/2025
1.6.0-preview4.19212.13 9 03/07/2025
1.6.0-preview3.19128.7 10 03/07/2025
1.6.0-preview.19073.11 9 03/07/2025
1.6.0-preview.18571.3 9 03/07/2025
1.5.0 9 03/07/2025
1.5.0-rc1 9 03/07/2025
1.5.0-preview2-26406-04 9 03/07/2025
1.5.0-preview1-26216-02 9 03/07/2025
1.4.0 9 03/07/2025
1.4.0-preview2-25405-01 9 03/07/2025
1.4.0-preview1-25305-02 9 03/07/2025
1.3.1 9 03/07/2025
1.3.0 9 03/07/2025
1.3.0-preview1-24530-04 9 03/07/2025
1.2.0 9 03/07/2025
1.2.0-rc2-24027 9 03/07/2025
1.1.38-beta-23516 9 03/07/2025
1.1.38-beta-23409 10 03/07/2025
1.1.38-beta-23225 10 03/07/2025
1.1.37 9 03/07/2025
1.1.37-beta-23109 9 03/07/2025
1.1.37-beta-23019 9 03/07/2025
1.1.36 9 03/07/2025
1.1.34-rc 9 03/07/2025
1.1.33-beta 10 03/07/2025
1.1.32-beta 10 03/07/2025