Сравнение экранированных значений в шестизначном Юникоде

У меня есть шестизначный символ Unicode, напримерU+100000 который я хочу сделать сравнение с другимchar в моем коде C #.

Мое чтениеДокументация MSDN является то, что этот символ не может быть представленcharи должен вместо этого быть представлен.string

символ Unicode в диапазоне от U + 10000 до U + 10FFFF недопустим в символьном литерале и представлен с использованием суррогатной пары Unicode в строковом литерале

Я чувствую, что яЯ упускаю что-то очевидное, но как вы можете заставить последующее сравнение работать правильно:

public bool IsCharLessThan(char myChar, string upperBound)
{
    return myChar < upperBound; // will not compile as a char is not comparable to a string
}

Assert.IsTrue(AnExample('\u0066', "\u100000"));
Assert.IsFalse(AnExample("\u100000", "\u100000")); // again won't compile as this is a string and not a char

редактировать

k, я думаю, что мне нужно два метода, один для принятия символов и другой для принятиябольшие символы то есть строки. Так:

public bool IsCharLessThan(char myChar, string upperBound)
{
    return true; // every char is less than a BigChar
}

public bool IsCharLessThan(string myBigChar, string upperBound)
{
    return string.Compare(myBigChar, upperBound) < 0;
}

Assert.IsTrue(AnExample('\u0066', "\u100000));
Assert.IsFalse(AnExample("\u100022", "\u100000"));

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

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