我有text1
和text2
,现在我想比较text1
和text2
并用突出显示的颜色来标识差异,以删除并添加和显示单词在text3
中,红色将被删除,绿色将被添加。
我将在WebBrowser控件中显示text3
,以便text3
显示为htmlfile并用颜色正确显示。
示例:
下面是我的代码,但是我遇到了一些问题。
在for循环oldt.Length
中,最后一个索引是newt[i]
,因此它给出错误“索引超出数组的范围”。
从oldText
中删除了最后两个单词“ Category:javascript”,但是在我的输出结果中,我希望这两个单词都位于点击标记中,因为这两个单词已从oldtext
中删除。
string oldText = "Name: justin Parker Link: http://github.com/jparkerweb/htmldiff-example About: html diff poc Description: front-end lib to show what has changed between html blocks Category: javascript";
string newText = "Name: Justin Parker Link: http://github.com/jparkerweb/htmldiff-example About: HTML diff example Description: front-end lib to show differences between HTML blocks";
string result = "";
string[] oldt = oldText.Split(' ');
string[] newt = newText.Split(' ');
for (int i = 0; i < oldt.Length; i++)
{
if (oldt[i] == newt[i])
{
result += oldt[i].ToString() + " ";
}
else
{
result += "<strike><font color='red'>" + oldt[i].ToString() + "</font></strike>" + "<u><font color='Green'>" + newt[i].ToString() + "</font></u>" + " ";
}
}
答案 0 :(得分:2)
使用分割将text1和text2的两个单词加载到一个数组中,并比较每个数组的索引是否匹配。在循环时进行比较时,通过移动到每个索引并检查后续和先前的索引值来确定是否替换,删除或添加了逻辑。
祝您好运!!!