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大括号里面的语句,我郁闷

也许带空格。
在后面加上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)返回是是什么值。