2 types derived from FrozenSet
System.Collections.Immutable (2)
79 references to FrozenSet
Aspire.Hosting (1)
Microsoft.AspNetCore.Components (1)
Microsoft.AspNetCore.OpenApi (1)
Microsoft.AspNetCore.OutputCaching (1)
Microsoft.Build (2)
Microsoft.Build.Tasks.Core (2)
Microsoft.Build.Utilities.Core (2)
Microsoft.CodeAnalysis.LanguageServer.Protocol (1)
Microsoft.CodeAnalysis.Workspaces (2)
Microsoft.DotNet.Build.Tasks.Feed (5)
Microsoft.DotNet.Internal.SymbolHelper (6)
Microsoft.Extensions.Diagnostics.ResourceMonitoring (2)
Microsoft.Extensions.Http.Diagnostics (3)
Microsoft.Extensions.Http.Diagnostics.Tests (2)
MSBuild (2)
System.Collections.Immutable (46)
System\Collections\Frozen\FrozenSet.cs (27)
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);
361internal delegate int AlternateLookupDelegate<TAlternate>(FrozenSet<T> set, TAlternate key)
484/// <summary>Enumerates the values of a <see cref="FrozenSet{T}"/>.</summary>