字符串非空判断的效率问题
2020-03-18 11:47 Lecone.JY.HU 阅读(375) 评论(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。
浙公网安备 33010602011771号