字符串空比较
2010年9月28日
没有评论
判断字符串变量str是否为空的一下三种方法哪个性能更优:
a、str== ” “;b、str==String.Empty;c、str.Length==0;?
据说答案是C,不太明白,请问为什么啊 str.Length==0 效率更快
1.使用Length来检查一个字符串是否为空。
计算Length时,只需要检查内部数组的长度,不需要字节比较。而字节比较是比直接计算计算要慢很多的
2.在来看看string的一个构造函数 String (Char[], Int32, Int32) 将 String 类的新实例初始化为由 Unicode 字符数组、该数组内的起始字符位置和一个长度指示的值。 即string对象在本身构造时,就已经有一个参数是长度指示,他对外的表现就是Length
3.我们在来看看String.Empty本质,有一定c++和vb基础的都知道,一个字符串都有一个表示结尾的字节,net环境下也是如此,这个结尾的字节就是String.Empty 4.使用str==String.Empty要比str== ” “快速因为String.Empty在内部是个常量 综上: a、str== ” “; b、str==String.Empty; c、str.Length==0; c优于b,b优于a