Trong khi phát triển ứng dụng của tôi tôi đã xem qua một số công cụ so sánh ở đây là nó:Đó là so sánh nhanh: Convert.ToInt32 (stringValue) == intValue hoặc stringValue == intValue.ToString()
string str = "12345";
int j = 12345;
if (str == j.ToString())
{
//do my logic
}
Tôi đã suy nghĩ rằng những thứ trên cũng có thể được thực hiện với:
string str = "12345";
int j = 12345;
if (Convert.ToInt32(str) == j)
{
//do my logic
}
Vì vậy, tôi đã phát triển một số mẫu mã để kiểm tra về hiệu suất cái nào là tốt hơn
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();
Và điều thứ hai:
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();
Khi chạy hai thử nghiệm trên tôi thấy các thử nghiệm trên đã cho gần hết thời gian trôi qua. Tôi muốn thảo luận cái nào là cách tiếp cận tốt hơn? Và có cách tiếp cận nào khác tốt hơn hai phương pháp trên không?
Nếu "000123"! = 123, điều này chắc chắn tốt hơn. –