一个很基本也很常见的问题,转换string为int,几种方式的效率比较
测试结果引子sitepoint。
方法1
测试循环1000次,结果为方法1-10秒,方法2-0.3秒,方法3-0.2秒。
效率差异非常巨大。
方法1
try
{
Convert.ToInt16("testing");
}
catch
{
}
方法2{
Convert.ToInt16("testing");
}
catch
{
}
string regexPattern = @"^(\d)+$";
System.Text.RegularExpressions.Regex checkInt = new System.Text.RegularExpressions.Regex(regexPattern);
return checkInt.IsMatch("TESTING");
方法3System.Text.RegularExpressions.Regex checkInt = new System.Text.RegularExpressions.Regex(regexPattern);
return checkInt.IsMatch("TESTING");
double d = 0;
System.Globalization.CultureInfo myCulture = new System.Globalization.CultureInfo("en-GB");
Double.TryParse("testing",System.Globalization.NumberStyles.Integer,myCulture,out d);
其中方法3是.net 2.0引入的。System.Globalization.CultureInfo myCulture = new System.Globalization.CultureInfo("en-GB");
Double.TryParse("testing",System.Globalization.NumberStyles.Integer,myCulture,out d);
测试循环1000次,结果为方法1-10秒,方法2-0.3秒,方法3-0.2秒。
效率差异非常巨大。