salté en este accidente y no tienen idea de por qué esto está ocurriendocadena inicializado parece contener String.Empty
string sample = "Hello World";
if (sample.Contains(string.Empty))
{
Console.WriteLine("This contains an empty part ? at position " + sample.IndexOf(string.Empty));
Console.WriteLine(sample.LastIndexOf(string.Empty));
Console.WriteLine(sample.Length);
}
salida
This contains an empty part ? at position 0
10
11
Estoy contento con la última parte, pero no tengo idea de por qué esto se evalúa como verdadero. Incluso Indexof
y LastIndexOf
tienen valores separados.
¿Alguien podría ayudarme en por qué es esto así?
EDITAR
Creo que esto es un poco relevante a mi pregunta y también sería útil para aquellos que se tropiezan con esta pregunta.
ver este enlace SO: Why does "abcd".StartsWith("") return true?
@ SwDevMan81: ¿no debería ser 11 en lugar de 10? – V4Vendetta
@ V4Vendetta - el último índice es 10 (0 a 10 son 11 caracteres) – SwDevMan81
@ SwDevMan81: lo siento, mi error no fue "índice", por lo que implica que para cualquier cadena como se indica arriba, la cadena siempre se resolverá como verdadera (Estaría encantado de saber si hay un caso excepcional) – V4Vendetta