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)){}
看来大家看法不一样呀,有没有权威点的答案? 展开
string str2="aaa";
1.if(str1==str2){}
2.if(str1.Equals(str2)){}
看来大家看法不一样呀,有没有权威点的答案? 展开
10个回答
展开全部
第一个方法快,运行下面程序可以证明:
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
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
展开全部
第一个方法快,运行下面程序可以证明:
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收起
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收起
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个好像是整体字符串比较
第二个好像是一个字符一个字符的比较吧
第一个好像要再开一个空间
第二个好像比第一个慢一些 但不用开空间了 貌似是这样
第二个好像是一个字符一个字符的比较吧
第一个好像要再开一个空间
第二个好像比第一个慢一些 但不用开空间了 貌似是这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个,第二个还要调用方法应该慢一些,第一个直接比较应该快一些。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第二个,这样写而且能让别人觉得程序员很老练
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询