c#中帮断两个字符串相等的问题,崩溃了,明明相等为什么不执行
来源:百度知道 编辑:UC知道 时间:2024/06/23 17:09:36
请看如下代码,有点长,但是非常简单
string str1 = string.Empty;
string str2 = string.Empty;
foreach (DataRow theRow in thisDataSet.Tables["PointMessage"].Rows)
{
str1 = theRow["stationname"].ToString();
str2 = this.comboxInfo1.Text;
textBResult.Text = "";
if (string.Compare(str1, str2) == 0)
{
// MessageBox.Show(string.Compare(str1, str2).ToString());
this.textBResult.Text = theRow["message"].ToString();
break;
}
}
我设置了断点,上面显示两个字符串的值都为“火车站”,但是为什么他不执行if大括号里面的语句,我郁闷
string str1 = string.Empty;
string str2 = string.Empty;
foreach (DataRow theRow in thisDataSet.Tables["PointMessage"].Rows)
{
str1 = theRow["stationname"].ToString();
str2 = this.comboxInfo1.Text;
textBResult.Text = "";
if (string.Compare(str1, str2) == 0)
{
// MessageBox.Show(string.Compare(str1, str2).ToString());
this.textBResult.Text = theRow["message"].ToString();
break;
}
}
我设置了断点,上面显示两个字符串的值都为“火车站”,但是为什么他不执行if大括号里面的语句,我郁闷
也许带空格。
在后面加上Trim()试试
string s1 = "a";
string s2 = "a";
if (s1.Equals(s2))
Response.Write("aaa");
else
Response.Write("bbb");
这样子判断!
楼主,你好
String.Compare函数就是比较两个字符串,逐个比较每个字符的ASCII码值,如果当前对应的A串中的字符小于B串,那么代表A串小于B串,返回-1,否则A串大于B串,返回1,如果比较完毕后全部都相等,那么则认为A串与B串相等,返回0,如字符串"shell"与"shall",比较第一个字符s,两者都相等,那么看第二个h,也都相等,看第三个,e的ASCII码大于a,那么判断shell大于shall,返回1
你看看是不是有什么多余的,空格之类的...
看看str1.Length和str2.Length是否一样,可能尾部有空格
输出一下string.Compare(str1, str2) 这个结果 你就知道为什么没执行if里面的内容了撒
调试看下string.Compare(str1, str2)返回是是什么值。