我有一个用 C# 编写的程序,其中有很多整数和字符串之间的比较。
所以出于性能原因,我只想知道哪个更有效率?
如果我们有:
int a = 5;
string b = "5";
if(a == int.Parse(b)) { }
OR
if(a.ToString() == b) { }
我实际上使用一些示例和定时循环对此进行了分析。事实证明,Parse 胜出小整数,而 ToString 胜出大整数。这种差异非常小,不应该成为一个问题,但是,正如其他人提到的,通过考虑字符串根本不代表整数的情况,您可能会做出更好的选择。
Edit:对于那些感兴趣的人,这里是来源,快速'n'肮脏:
using System;
using System.Diagnostics;
namespace CompareTest
{
static class Program
{
static void Main(string[] args)
{
int iterations = 10000000;
int a = 5;
string b = "5";
Stopwatch toStringStopwatch = new Stopwatch();
toStringStopwatch.Start();
for (int i = 0; i < iterations; i++) {
bool dummyState = a.ToString() == b;
}
toStringStopwatch.Stop();
Stopwatch parseStopwatch = new Stopwatch();
parseStopwatch.Start();
for (int i = 0; i < iterations; i++) {
bool dummyState = a == int.Parse(b);
}
parseStopwatch.Stop();
Console.WriteLine("ToString(): {0}", toStringStopwatch.Elapsed);
Console.WriteLine("Parse(): {0}", parseStopwatch.Elapsed);
Console.ReadLine();
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)