Quiero comparar si dos cadenas son iguales o no en C# utilizando el método Equals() de la clase de cadena. Pero a pesar de que ambas cadenas son las mismas, mi verificación condicional está fallando.El método String Equals() falla aunque las dos cadenas son las mismas en C#?
He visto que ambas cadenas son iguales y también lo he verificado en el sitio http://text-compare.com/. No sé cuál es el problema aquí ...
Mi código es:
protected string getInnerParaOnly(DocumentFormat.OpenXml.Wordprocessing.Paragraph currPara, string paraText)
{
string currInnerText = "";
bool isChildRun = false;
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(currPara.OuterXml);
XmlNode newNode = xDoc.DocumentElement;
string temp = currPara.OuterXml.ToString().Trim();
XmlNodeList pNode = xDoc.GetElementsByTagName("w:p");
for (int i = 0; i < pNode.Count; i++)
{
if (i == 0)
{
XmlNodeList childList = pNode[i].ChildNodes;
foreach (XmlNode xNode in childList)
{
if (xNode.Name == "w:r")
{
XmlNodeList childList1 = xNode.ChildNodes;
foreach (XmlNode xNode1 in childList1)
{
if (xNode1.Name == "w:t" && xNode1.Name != "w:pict")
{
currInnerText = currInnerText + xNode1.InnerText;
}
}
}
}
if (currInnerText.Equals(paraText))
{
//do lot of work here...
}
}
}
Cuando pongo un punto de ruptura en e ir paso a paso, viendo cada uno y todos los personajes, entonces hay es una diferencia en currInnerText último índice. Parece un char vacío. Pero ya utilicé la función Trim(). Esta es la imagen capturada durante el proceso de depuración.
¿Cuál es la solución para eliminar el carácter vacío o cualquier otro carácter espurio al final de la cadena currInnerText?
Ese no es su código real ('Equals()' no está todo en minúscula en C#). Por favor pegue su código actual. – BoltClock
Claramente hay algo que no nos está diciendo. El código que presentó definitivamente funcionará si está comparando dos cadenas que son iguales. Necesitamos ver más de tu código. –
¿Cuáles son sus cadenas? – SeToY