C#比较2个字符串相等,最快的方法是什么?

stringstr1="aaa";stringstr2="aaa";1.if(str1==str2){}2.if(str1.Equals(str2)){}看来大家看法不一... string str1="aaa";
string str2="aaa";

1.if(str1==str2){}
2.if(str1.Equals(str2)){}
看来大家看法不一样呀,有没有权威点的答案?
展开
 我来答
dede56
推荐于2016-09-21 · TA获得超过188个赞
知道答主
回答量:136
采纳率:0%
帮助的人:130万
展开全部
第一个方法快,运行下面程序可以证明:

string str1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
string str2 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
long t1 = System.DateTime.Now.Ticks;
for (long i = 0; i < 1000000; i++)
{
if (str1 == str2) { }
}
long t2 = System.DateTime.Now.Ticks;
for (long i = 0; i < 1000000; i++)
{
if (str1.Equals(str2)) { }
}
long t3 = System.DateTime.Now.Ticks;
MessageBox.Show("t2 - t1 = " + (t2 - t1) + " t3 - t2 = " + (t3 - t2));

t2 - t1 = 140000 t3 - t2 = 760000
睦春绿中亭
2019-11-14 · TA获得超过3万个赞
知道大有可为答主
回答量:1.2万
采纳率:27%
帮助的人:722万
展开全部
第一个方法快,运行下面程序可以证明:
string
str1
=
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
string
str2
=
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
long
t1
=
System.DateTime.Now.Ticks;
for
(long
i
=
0;
i
<
1000000;
i++)
{
if
(str1
==
str2)
{
}
}
long
t2
=
System.DateTime.Now.Ticks;
for
(long
i
=
0;
i
<
1000000;
i++)
{
if
(str1.Equals(str2))
{
}
}
long
t3
=
System.DateTime.Now.Ticks;
...展开第一个方法快,运行下面程序可以证明:
string
str1
=
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
string
str2
=
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
long
t1
=
System.DateTime.Now.Ticks;
for
(long
i
=
0;
i
<
1000000;
i++)
{
if
(str1
==
str2)
{
}
}
long
t2
=
System.DateTime.Now.Ticks;
for
(long
i
=
0;
i
<
1000000;
i++)
{
if
(str1.Equals(str2))
{
}
}
long
t3
=
System.DateTime.Now.Ticks;
MessageBox.Show("t2
-
t1
=
"
+
(t2
-
t1)
+
"
t3
-
t2
=
"
+
(t3
-
t2));
t2
-
t1
=
140000
t3
-
t2
=
760000收起
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lipai006
2009-08-11 · TA获得超过240个赞
知道小有建树答主
回答量:610
采纳率:0%
帮助的人:226万
展开全部
第一个好像是整体字符串比较
第二个好像是一个字符一个字符的比较吧

第一个好像要再开一个空间
第二个好像比第一个慢一些 但不用开空间了 貌似是这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
止易巧0p
2009-08-08 · TA获得超过482个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:266万
展开全部
第一个,第二个还要调用方法应该慢一些,第一个直接比较应该快一些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
等待不可思议
2009-08-08 · 超过24用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:71.1万
展开全部
第二个,这样写而且能让别人觉得程序员很老练
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式