System.Collections.Immutable by Microsoft

<PackageReference Include="System.Collections.Immutable" Version="9.0.0-rc.2.24473.5" />

.NET API 251,176 bytes

 OrdinalStringFrozenDictionary_RightJustifiedCaseInsensitiveSubstring<TValue>

using System.Collections.Generic; using System.Runtime.CompilerServices; namespace System.Collections.Frozen { [NullableContext(1)] [Nullable(new byte[] { 0, 1 })] internal sealed class OrdinalStringFrozenDictionary_RightJustifiedCaseInsensitiveSubstring<[Nullable(2)] TValue> : OrdinalStringFrozenDictionary<TValue> { internal OrdinalStringFrozenDictionary_RightJustifiedCaseInsensitiveSubstring(string[] keys, TValue[] values, IEqualityComparer<string> comparer, int minimumLength, int maximumLengthDiff, int hashIndex, int hashCount) : base(keys, values, comparer, minimumLength, maximumLengthDiff, hashIndex, hashCount) { } [return: IsReadOnly] private protected override ref TValue GetValueRefOrNullRefCore(string key) { return ref base.GetValueRefOrNullRefCore(key); } [return: IsReadOnly] private protected override ref TValue GetValueRefOrNullRefCore<TAlternateKey>(TAlternateKey key) { return ref base.GetValueRefOrNullRefCore(key); } [NullableContext(2)] private protected override bool Equals(string x, string y) { return StringComparer.OrdinalIgnoreCase.Equals(x, y); } [NullableContext(0)] private protected override bool Equals(ReadOnlySpan<char> x, [Nullable(2)] string y) { return MemoryExtensions.Equals(x, y.AsSpan(), StringComparison.OrdinalIgnoreCase); } private protected override int GetHashCode(string s) { return Hashing.GetHashCodeOrdinalIgnoreCase(s.AsSpan(s.Length + base.HashIndex, base.HashCount)); } [NullableContext(0)] private protected override int GetHashCode(ReadOnlySpan<char> s) { return Hashing.GetHashCodeOrdinalIgnoreCase(s.Slice(s.Length + base.HashIndex, base.HashCount)); } } }