System.Collections.Immutable by Microsoft

<PackageReference Include="System.Collections.Immutable" Version="10.0.0-preview.2.25163.2" />

.NET API 251,152 bytes

 OrdinalStringFrozenDictionary_RightJustifiedCaseInsensitiveSubstring<TValue>

using System.Collections.Generic; using System.Runtime.CompilerServices; namespace System.Collections.Frozen { internal sealed class OrdinalStringFrozenDictionary_RightJustifiedCaseInsensitiveSubstring<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: System.Runtime.CompilerServices.IsReadOnly] private protected override ref TValue GetValueRefOrNullRefCore(string key) { return ref base.GetValueRefOrNullRefCore(key); } private protected override bool Equals(string x, string y) { return StringComparer.OrdinalIgnoreCase.Equals(x, y); } private protected override bool Equals(ReadOnlySpan<char> x, 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)); } private protected override int GetHashCode(ReadOnlySpan<char> s) { return Hashing.GetHashCodeOrdinalIgnoreCase(s.Slice(s.Length + base.HashIndex, base.HashCount)); } } }