字符串非空判断的效率问题
2020-03-18 11:47 Lecone.JY.HU 阅读(368) 评论(0) 编辑 收藏 举报static void TestString() { string[] allstring = File.ReadAllLines(Path.Combine(AppContext.BaseDirectory, "text.txt")); int i=0,j = 0; Stopwatch sw = new Stopwatch(); sw.Start(); foreach (var item in allstring) { if (!string.IsNullOrWhiteSpace(item)) { i++; } else { j++; } } sw.Stop(); Console.WriteLine($"IsNullOrWhiteSpace方法 总共{allstring.Length}数据,非空 {i++} 条,空 {j},耗时:{sw.ElapsedMilliseconds}"); } static void TestString2() { string[] allstring = File.ReadAllLines(Path.Combine(AppContext.BaseDirectory, "text.txt")); int i = 0, j = 0; Stopwatch sw = new Stopwatch(); sw.Start(); foreach (var item in allstring) { if (!string.IsNullOrEmpty(item)) { i++; } else { j++; } } sw.Stop(); Console.WriteLine($"IsNullOrEmpty方法 总共{allstring.Length}数据,非空 {i++} 条,空 {j},耗时:{sw.ElapsedMilliseconds}"); } static void TestString1() { string[] allstring = File.ReadAllLines(Path.Combine(AppContext.BaseDirectory, "text.txt")); int i = 0, j = 0; Stopwatch sw = new Stopwatch(); sw.Start(); foreach (var item in allstring) { if (item!=null&&item.Length>0) { i++; } else { j++; } } sw.Stop(); Console.WriteLine($"==null length>0 方法 总共{allstring.Length}数据,非空 {i} 条,空 {j},耗时:{sw.ElapsedMilliseconds}"); }
本文主要测试三种判断字符串非空的方法。
1.IsNullOrWhiteSpace 是否为null或空格字符。
2.用==null && Length>0判断字符串是否为空。
3.IsNullOrEmpty 判断字符是否为null或Empty。
数据量
100条内。
万条内
一万条
10万条
100万条
500万条 带空格字符
500万条 不带空格字符
1500万条 带有空格字符。
结论:
1.数量少的时候你不需要纠结。三个哪个顺手就用哪个。
2.数据量大的时候很明显 IsNullOrEmpty 是比较优秀的。
3.如果要排除空格字符的话 还是要用 IsNullOrWhiteSpace。