<PackageReference Include="Microsoft.Extensions.Primitives" Version="10.0.0-rc.1.25451.107" />

StringSegmentComparer

Compares two StringSegment objects.
using System; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace Microsoft.Extensions.Primitives { [NullableContext(1)] [Nullable(0)] public class StringSegmentComparer : IComparer<StringSegment>, IEqualityComparer<StringSegment> { public static StringSegmentComparer Ordinal { get; } = new StringSegmentComparer(StringComparison.Ordinal, StringComparer.Ordinal); public static StringSegmentComparer OrdinalIgnoreCase { get; } = new StringSegmentComparer(StringComparison.OrdinalIgnoreCase, StringComparer.OrdinalIgnoreCase); private StringComparison Comparison { get; } private StringComparer Comparer { get; } private StringSegmentComparer(StringComparison comparison, StringComparer comparer) { Comparison = comparison; Comparer = comparer; } public int Compare(StringSegment x, StringSegment y) { return StringSegment.Compare(x, y, Comparison); } public bool Equals(StringSegment x, StringSegment y) { return StringSegment.Equals(x, y, Comparison); } public int GetHashCode(StringSegment obj) { return string.GetHashCode(obj.AsSpan(), Comparison); } } }