String.comparison производительность (с отделкой)

Мне нужно было сделать много высокопроизводительных сравнений строк без учета регистра и понял, что мой способ сделать это .ToLower (). Trim () был действительно глупым из-за того, что все новые строки были выделены

Поэтому я немного покопался, и этот путь кажется предпочтительнее:

String.Compare(txt1,txt2, StringComparison.OrdinalIgnoreCase)

Единственная проблема здесь в том, что я хочу игнорировать начальные или конечные пробелы, то есть Trim (), но если я использую Trim, у меня та же проблема с распределением строк. Я думаю, что я мог бы проверить каждую строку и посмотреть, если она StartsWith ("") или EndsWith (""), и только тогда Trim. Или это или выяснить индекс, длину для каждой строки и передать в строку. Сравнение переопределения

public static int Compare
(
    string strA,
    int indexA,
    string strB,
    int indexB,
    int length,
    StringComparison comparisonType
) 

но это кажется довольно запутанным, и мне, вероятно, придется использовать некоторые целые числа, если я не сделаю действительно большой оператор if-else для каждой комбинации конечных и ведущих пробелов в обеих строках ... так есть ли идеи элегантного решения?

Вот мое текущее предложение:

public bool IsEqual(string a, string b)
    {
        return (string.Compare(a, b, StringComparison.OrdinalIgnoreCase) == 0);
    }

    public bool IsTrimEqual(string a, string b)
    {
        if (Math.Abs(a.Length- b.Length) > 2 ) // if length differs by more than 2, cant be equal
        {
            return  false;
        }
        else if (IsEqual(a,b))
        {
            return true;
        }
        else 
        {
            return (string.Compare(a.Trim(), b.Trim(), StringComparison.OrdinalIgnoreCase) == 0);
        }
    }

Ответы на вопрос(8)

Ваш ответ на вопрос