自用草稿,勿参考
private void btn_start_Click(object sender, EventArgs e)
{
Console.WriteLine("START");
for (int i = 0; i < 10; i++)
{
testVoid();
Console.WriteLine("");
}
Console.WriteLine("All Clear");
Console.WriteLine("==: " + (float)r1 / 10);
Console.WriteLine("str.Equals: " + (float)r2 / 10);
Console.WriteLine("str.CompareTo: " + (float)r3 / 10);
Console.WriteLine("string.Compare: " + (float)r4 / 10);
Console.WriteLine("string.CompareOrdinal: " + (float)r5 / 10);
Console.WriteLine("string.Equals: " + (float)r6 / 10);
}
private static int r1 = 0, r2 = 0, r3 = 0, r4 = 0, r5 = 0, r6 = 0;
private static void testVoid()
{
int start = Environment.TickCount;
int total = 0;
string orgString = FixedFunc.getRandText(49);
List<string> strList = new List<string>();
for (int i = 0; i < 1000000; i++)
{
strList.Add(FixedFunc.getRandText(49));
}
start = Environment.TickCount;
foreach (string str in strList)
{
if (str == orgString)
Console.WriteLine("This is 1");
}
total = (Environment.TickCount - start);
r1 += total;
Console.WriteLine("== OVER: " + total);
strList.Clear();
for (int i = 0; i < 1000000; i++)
{
strList.Add(FixedFunc.getRandText(49));
}
start = Environment.TickCount;
foreach (string str in strList)
{
if (str.Equals(orgString) == true)
Console.WriteLine("This is 2");
}
total = (Environment.TickCount - start);
r2 += total;
Console.WriteLine("str.Equals OVER: " + total);
strList.Clear();
for (int i = 0; i < 1000000; i++)
{
strList.Add(FixedFunc.getRandText(49));
}
start = Environment.TickCount;
foreach (string str in strList)
{
if (str.CompareTo(orgString) == 0)
Console.WriteLine("This is 3");
}
total = (Environment.TickCount - start);
r3 += total;
Console.WriteLine("str.CompareTo OVER: " + total);
strList.Clear();
for (int i = 0; i < 1000000; i++)
{
strList.Add(FixedFunc.getRandText(49));
}
start = Environment.TickCount;
foreach (string str in strList)
{
if (string.Compare(str, orgString) == 0)
Console.WriteLine("This is 4");
}
total = (Environment.TickCount - start);
r4 += total;
Console.WriteLine("string.Compare OVER: " + total);
strList.Clear();
for (int i = 0; i < 1000000; i++)
{
strList.Add(FixedFunc.getRandText(49));
}
start = Environment.TickCount;
foreach (string str in strList)
{
if (string.CompareOrdinal(str, orgString) == 0)
Console.WriteLine("This is 5");
}
total = (Environment.TickCount - start);
r5 += total;
Console.WriteLine("string.CompareOrdinal OVER: " + total);
strList.Clear();
for (int i = 0; i < 1000000; i++)
{
strList.Add(FixedFunc.getRandText(49));
}
start = Environment.TickCount;
foreach (string str in strList)
{
if (string.Equals(str, orgString) == true)
Console.WriteLine("This is 6");
}
total = (Environment.TickCount - start);
r6 += total;
Console.WriteLine("string.Equals OVER: " + total);
}
结果:
START == OVER: 47 str.Equals OVER: 47 str.CompareTo OVER: 375 string.Compare OVER: 375 string.CompareOrdinal OVER: 47 string.Equals OVER: 31 == OVER: 31 str.Equals OVER: 31 str.CompareTo OVER: 375 string.Compare OVER: 359 string.CompareOrdinal OVER: 31 string.Equals OVER: 47 == OVER: 32 str.Equals OVER: 47 str.CompareTo OVER: 406 string.Compare OVER: 375 string.CompareOrdinal OVER: 31 string.Equals OVER: 47 == OVER: 47 str.Equals OVER: 47 str.CompareTo OVER: 375 string.Compare OVER: 375 string.CompareOrdinal OVER: 31 string.Equals OVER: 47 == OVER: 47 str.Equals OVER: 47 str.CompareTo OVER: 375 string.Compare OVER: 375 string.CompareOrdinal OVER: 47 string.Equals OVER: 31 == OVER: 47 str.Equals OVER: 47 str.CompareTo OVER: 375 string.Compare OVER: 391 string.CompareOrdinal OVER: 31 string.Equals OVER: 47 == OVER: 47 str.Equals OVER: 47 str.CompareTo OVER: 391 string.Compare OVER: 375 string.CompareOrdinal OVER: 47 string.Equals OVER: 31 == OVER: 47 str.Equals OVER: 47 str.CompareTo OVER: 406 string.Compare OVER: 375 string.CompareOrdinal OVER: 47 string.Equals OVER: 47 == OVER: 47 str.Equals OVER: 47 str.CompareTo OVER: 375 string.Compare OVER: 375 string.CompareOrdinal OVER: 47 string.Equals OVER: 31 == OVER: 47 str.Equals OVER: 31 str.CompareTo OVER: 375 string.Compare OVER: 375 string.CompareOrdinal OVER: 31 string.Equals OVER: 31 All Clear ==: 43.9 str.Equals: 43.8 str.CompareTo: 382.8 string.Compare: 375 string.CompareOrdinal: 39 string.Equals: 39
结论:
在我的电脑上
比较是否相等最好用 string.equals
比较大小最好用 string.CompareOrdinal

2508

被折叠的 条评论
为什么被折叠?



