namespaceSystem.Globalization{publicpartialclassCompareInfo:IDeserializationCallback{publicintIndexOf(ReadOnlySpan<char>source,ReadOnlySpan<char>value,CompareOptionsoptions=CompareOptions.None);publicintLastIndexOf(ReadOnlySpan<char>source,ReadOnlySpan<char>value,CompareOptionsoptions=CompareOptions.None);publicintCompare(ReadOnlySpan<char>source,ReadOnlySpan<char>value,CompareOptionsoptions=CompareOptions.None);publicboolIsSuffix(ReadOnlySpan<char>source,ReadOnlySpan<char>suffix,CompareOptionsoptions=CompareOptions.None);publicboolIsPrefix(ReadOnlySpan<char>source,ReadOnlySpan<char>prefix,CompareOptionsoptions=CompareOptions.None);publicstaticboolIsSortable(ReadOnlySpan<char>text);}}Rationale
While doing some Span optimizations in Regex I noticed that the current comparison extension methods on ROS don't support comparison with a specific culture: MemoryExtensions.CompareTo(this ReadOnlySpan<char> span, ReadOnlySpan<char> value, StringComparison comparisonType).
With string I can do that in different ways either by string.Compare(string, string, CultureInfo, CompareOptions); or by StringComparer.Create(CultureInfo, bool ignoreCase).Compare(string, string).
cc @tarekgh@ahsonkhan
Rationale
While doing some Span optimizations in Regex I noticed that the current comparison extension methods on ROS don't support comparison with a specific culture:
MemoryExtensions.CompareTo(this ReadOnlySpan<char> span, ReadOnlySpan<char> value, StringComparison comparisonType).With string I can do that in different ways either by
string.Compare(string, string, CultureInfo, CompareOptions);or byStringComparer.Create(CultureInfo, bool ignoreCase).Compare(string, string).cc @tarekgh@ahsonkhan