Comparación de valores escapados Unicode de seis dígitos
Tengo un carácter Unicode de seis dígitos, por ejemplo.U+100000
Lo que deseo hacer una comparación con otrochar
en mi código C #
Mi lectura de laDocumentación de MSDN es que este personaje no puede ser representado por unachar
, y en su lugar debe ser representado por unastring
.
un carácter Unicode en el rango U + 10000 a U + 10FFFF no está permitido en un literal de carácter y se representa mediante un par suplente de Unicode en un literal de cadena
Siento que me falta algo obvio, pero ¿cómo puede hacer que la comparación de seguimiento funcione correctamente?
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
editar
K, creo que necesito dos métodos, uno para aceptar caracteres y otro para aceptar "caracteres grandes", es decir, cadenas. Asi que:
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"));