2 types derived from FrozenSet
System.Collections.Immutable (2)
60 references to FrozenSet
Aspire.Hosting (1)
Microsoft.AspNetCore.Components (1)
Microsoft.AspNetCore.OpenApi (1)
Microsoft.AspNetCore.OutputCaching (1)
Microsoft.CodeAnalysis.LanguageServer.Protocol (1)
Microsoft.CodeAnalysis.Workspaces (2)
Microsoft.DotNet.Internal.SymbolHelper (6)
Microsoft.Extensions.Diagnostics.ResourceMonitoring (2)
Microsoft.Extensions.Http.Diagnostics (3)
Microsoft.Extensions.Http.Diagnostics.Tests (2)
System.Collections.Immutable (40)
System\Collections\Frozen\FrozenSet.cs (26)
14/// Provides a set of initialization methods for instances of the <see cref="FrozenSet{T}"/> class.
18/// <summary>Creates a <see cref="FrozenSet{T}"/> with the specified values.</summary>
22public static FrozenSet<T> Create<T>(params ReadOnlySpan<T> source) => Create(null, source);
24/// <summary>Creates a <see cref="FrozenSet{T}"/> with the specified values.</summary>
29public static FrozenSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params ReadOnlySpan<T> source)
33return equalityComparer is null || ReferenceEquals(equalityComparer, FrozenSet<T>.Empty.Comparer) ?
34FrozenSet<T>.Empty :
52/// <summary>Creates a <see cref="FrozenSet{T}"/> with the specified values.</summary>
57public static FrozenSet<T> ToFrozenSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer = null) =>
61/// <summary>Extracts from the source either an existing <see cref="FrozenSet{T}"/> instance or a <see cref="HashSet{T}"/> containing the values and the specified <paramref name="comparer"/>.</summary>
62private static FrozenSet<T>? GetExistingFrozenOrNewSet<T>(IEnumerable<T> source, IEqualityComparer<T>? comparer, out HashSet<T>? newSet)
68if (source is FrozenSet<T> fs && fs.Comparer.Equals(comparer))
85return ReferenceEquals(comparer, FrozenSet<T>.Empty.Comparer) ?
86FrozenSet<T>.Empty :
95private static FrozenSet<T> CreateFromSet<T>(HashSet<T> source)
112return (FrozenSet<T>)(object)new SmallValueTypeComparableFrozenSet<T>(source);
116return (FrozenSet<T>)(object)new SmallValueTypeDefaultComparerFrozenSet<T>(source);
124return (FrozenSet<T>)(object)new Int32FrozenSet((HashSet<int>)(object)source);
157FrozenSet<string>? frozenSet = LengthBucketsFrozenSet.CreateLengthBucketsFrozenSetIfAppropriate(entries, stringComparer, minLength, maxLength);
160return (FrozenSet<T>)(object)frozenSet;
212return (FrozenSet<T>)(object)frozenSet;
230/// <see cref="FrozenSet{T}"/> is immutable and is optimized for situations where a set
234/// the remainder of the life of the application. <see cref="FrozenSet{T}"/> should only be initialized
250/// <summary>Gets an empty <see cref="FrozenSet{T}"/>.</summary>
251public static FrozenSet<T> Empty { get; } = new EmptyFrozenSet<T>(EqualityComparer<T>.Default);
446/// <summary>Enumerates the values of a <see cref="FrozenSet{T}"/>.</summary>