using System; using System.Collections.Generic; using UnityEngine; namespace UnityTest { public class StringComparer : ComparerBaseGeneric { public enum CompareType { Equal, NotEqual, Shorter, Longer } public CompareType compareType; public StringComparison comparisonType = StringComparison.Ordinal; public bool ignoreCase = false; protected override bool Compare(string a, string b) { if (ignoreCase) { a = a.ToLower(); b = b.ToLower(); } switch (compareType) { case CompareType.Equal: return String.Compare(a, b, comparisonType) == 0; case CompareType.NotEqual: return String.Compare(a, b, comparisonType) != 0; case CompareType.Longer: return String.Compare(a, b, comparisonType) > 0; case CompareType.Shorter: return String.Compare(a, b, comparisonType) < 0; } throw new Exception(); } } }