<PackageReference Include="NUnit" Version="4.4.0" />

StringsComparer

static class StringsComparer
Comparator for two Strings.
using System; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace NUnit.Framework.Constraints.Comparers { [NullableContext(1)] [Nullable(0)] internal static class StringsComparer { public static EqualMethodResult Equal(object x, object y, ref Tolerance tolerance, ComparisonState state, NUnitEqualityComparer equalityComparer) { string text = x as string; if (text != null) { string text2 = y as string; if (text2 != null) { if (tolerance.HasVariance) return EqualMethodResult.ToleranceNotSupported; if (!Equals(text, text2, equalityComparer.IgnoreCase, equalityComparer.IgnoreWhiteSpace, equalityComparer.IgnoreLineEndingFormat)) return EqualMethodResult.ComparedNotEqual; return EqualMethodResult.ComparedEqual; } } return EqualMethodResult.TypesNotSupported; } public static bool Equals(string x, string y, bool ignoreCase, bool ignoreWhiteSpace, bool ignoreLineEndingFormat) { if (ignoreWhiteSpace) { (int, int) valueTuple = MsgUtils.FindMismatchPosition(x, y, ignoreCase, true, ignoreLineEndingFormat); int item = valueTuple.Item1; int item2 = valueTuple.Item2; if (item == -1) return item2 == -1; return false; } IEqualityComparer<string> equalityComparer = ignoreCase ? ((!ignoreLineEndingFormat) ? ((IEqualityComparer<string>)StringComparer.CurrentCultureIgnoreCase) : ((IEqualityComparer<string>)IgnoreLineEndingFormatStringComparer.CurrentCultureIgnoreCase)) : ((!ignoreLineEndingFormat) ? ((IEqualityComparer<string>)StringComparer.Ordinal) : ((IEqualityComparer<string>)IgnoreLineEndingFormatStringComparer.Ordinal)); IEqualityComparer<string> equalityComparer2 = equalityComparer; return equalityComparer2.Equals(x, y); } } }