13.1 The problems with using regular collections13.2 The concurrent collections13.2.1 ConcurrentDictionary<TKey,TValue>13.2.2 BlockingCollection<T>13.2.3 Async alternatives for BlockingCollection13.2.4 ConcurrentQueue<T> and ConcurrentStack<T>13.2.5 ConcurrentBag<T>13.2.6 When to use the concurrent collections13.2.7 When not to use the concurrent collections13.3 The immutable collections13.3.1 How immutable collections work13.3.2 How to use the immutable collections13.3.3 ImmutableInterlocked13.3.4 ImmutableDictionary<TKey,TValue>13.3.5 ImmutableHashSet<T> and ImmutableSortedSet<T>13.3.6 ImmutableList<T>13.3.7 ImmutableQueue<T> and ImmutableStack<T>13.3.8 ImmutableArray<T>13.3.9 When to use the immutable collections13.4 The frozen collections13.4.1 When to use the frozen collectionsSummary