소스

 

string src = "abcd";

string dest = "ABCD";

int maxIter = 10000;

int matchCount = 0;

 

Stopwatch sw = Stopwatch.StartNew();

matchCount = 0;

for (int i = 0; i < maxIter; i++)

{

    if (src.ToLower() == dest.ToLower())

        matchCount++;

}

sw.Stop();

if (matchCount != maxIter)

    return;

Console.WriteLine("Lower Equal " + sw.Elapsed.ToString());

 

sw = Stopwatch.StartNew();

matchCount = 0;

for (int i = 0; i < maxIter; i++)

{

    if (src.ToUpper() == dest.ToUpper())

        matchCount++;

}

sw.Stop();

if (matchCount != maxIter)

    return;

Console.WriteLine("Upper Equal " + sw.Elapsed.ToString());

 

sw = Stopwatch.StartNew();

matchCount = 0;

for (int i = 0; i < maxIter; i++)

{

    if (src.Equals(dest, StringComparison.InvariantCultureIgnoreCase))

        matchCount++;

}

sw.Stop();

if (matchCount != maxIter)

    return;

Console.WriteLine("StringComparison.Ordinal InvariantCultureIgnoreCase " + sw.Elapsed.ToString());

 

sw = Stopwatch.StartNew();

matchCount = 0;

for (int i = 0; i < maxIter; i++)

{

    if (src.Equals(dest, StringComparison.CurrentCultureIgnoreCase))

        matchCount++;

}

sw.Stop();

if (matchCount != maxIter)

    return;

Console.WriteLine("StringComparison.Ordinal CurrentCultureIgnoreCase " + sw.Elapsed.ToString());

 

sw = Stopwatch.StartNew();

matchCount = 0;

for (int i = 0; i < maxIter; i++)

{

    if (src.Equals(dest, StringComparison.OrdinalIgnoreCase))

        matchCount++;

}

 

sw.Stop();

if (matchCount != maxIter)

    return;

Console.WriteLine("StringComparison.Ordinal OrdinalIgnoreCase " + sw.Elapsed.ToString());

 

sw = Stopwatch.StartNew();

matchCount = 0;

for (int i = 0; i < maxIter; i++)

{

    if (string.Compare(src, dest, true) == 0)

        matchCount++;

}

sw.Stop();

if (matchCount != maxIter)

    return;

Console.WriteLine("string.Compare Ignore " + sw.Elapsed.ToString());

 

sw = Stopwatch.StartNew();

matchCount = 0;

for (int i = 0; i < maxIter; i++)

{

    if (string.CompareOrdinal(src.ToLower(), dest.ToLower()) == 0)

        matchCount++;

}

sw.Stop();

if (matchCount != maxIter)

    return;

Console.WriteLine("string.CompareOrdinal ToLower " + sw.Elapsed.ToString());

 

sw = Stopwatch.StartNew();

matchCount = 0;

for (int i = 0; i < maxIter; i++)

{

    if (string.CompareOrdinal(src.ToUpper(), dest.ToUpper()) == 0)

        matchCount++;

}

sw.Stop();

if (matchCount != maxIter)

    return;

Console.WriteLine("string.CompareOrdinal ToUpper " + sw.Elapsed.ToString());

 

 

 

결과

 

string.CompareOrdinal ToUpper 00:00:00.0020907
Upper Equal 00:00:00.0016855
StringComparison.Ordinal InvariantCultureIgnoreCase 00:00:00.0011733
StringComparison.Ordinal CurrentCultureIgnoreCase 00:00:00.0017487
StringComparison.Ordinal OrdinalIgnoreCase 00:00:00.0002009
string.Compare Ignore 00:00:00.0017312
string.CompareOrdinal ToLower 00:00:00.0017755
string.CompareOrdinal ToUpper 00:00:00.0020907 

 

+ Recent posts