文字列クラスの Equals() メソッドを使用して、C# で 2 つの文字列が等しいかどうかを比較したいと考えています。しかし、両方の文字列が同じであっても、私の条件チェックは失敗しています。
両方の文字列が等しいことを確認し、http://text-compare.com/サイトでもこれを確認しました。ここで何が問題なのかわかりません...
私のコードは次のとおりです。
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...
}
}
}
ブレークポイントを入れて、1文字ずつ見ていくと、currInnerTextの最後のインデックスに違いがあります。空の文字のように見えます。しかし、Trim() 関数は既に使用しています。これは、デバッグ プロセス中にキャプチャされた画像です。
currInnerText 文字列の末尾にある空の文字またはその他の偽の文字を削除するための解決策は何ですか?