Które jest szybkie porównanie: Convert.ToInt32 (stringValue) == intValue lub stringValue == intValue.ToString ()
Podczas tworzenia mojej aplikacji natknąłem się na kilka rzeczy porównujących tutaj:
string str = "12345";
int j = 12345;
if (str == j.ToString())
{
//do my logic
}
Myślałem, że powyższe rzeczy można również wykonać za pomocą:
string str = "12345";
int j = 12345;
if (Convert.ToInt32(str) == j)
{
//do my logic
}
Dlatego opracowałem przykładowy kod do testowania pod kątem wydajności, który jest lepszy
var iterationCount = 1000000;
var watch = new Stopwatch();
watch.Start();
string str = "12345";
int j = 12345;
for (var i = 0; i < iterationCount; i++)
{
if (str == j.ToString())
{
//do my logic
}
}
watch.Stop();
I drugi:
var iterationCount = 1000000;
var watch = new Stopwatch();
watch.Start();
string str = "12345";
int j = 12345;
for (var i = 0; i < iterationCount; i++)
{
if (Convert.ToInt32(str) == j)
{
//do my logic
}
}
watch.Stop();
Po przeprowadzeniu powyższych dwóch testów odkryłem, że powyższe testy dawały prawie taki sam czas, jaki upłynął. Chciałbym omówić, które z nich jest lepsze? I czy jest jakieś inne podejście lepsze niż dwa powyżej dwóch?