判断字符串是否为空,一般的做法无非就下列5种,一直有很多人说效率有很大区别,就测试了下
判断方式 | 循环10000000次所用时间 (单位:毫秒) |
str == string.Empty | 218 |
str.Equals(string.Empty) | 187 |
str. Length == 0 | 70 |
str == “” | 140 |
str.Equals(“”) | 187 |
测试代码如下
DateTime dt1 = DateTime.Now; for (int i = 0; i < 10000000; i++) { if (expression) { } } DateTime dt2 = DateTime.Now; return ((TimeSpan)(dt2 - dt1)).Milliseconds.ToString(); |
不知道是我测试的问题还是怎么,但确实要1千万次才看得出效果。
但Equals方式可以避免 对象为null时采用 == “”出现的Exception.
不过既然已经1千万。。我想基本也没什么必要了。 只能说明ASP.NET 对这方面优化得很好了。