我想知道用空值替换数组中空字符串的最有效方法.
我有以下数组:
string[] _array = new string [10];
_array[0] = "A";
_array[1] = "B";
_array[2] = "";
_array[3] = "D";
_array[4] = "E";
_array[5] = "F";
_array[6] = "G";
_array[7] = "";
_array[8] = "";
_array[9] = "J";
Run Code Online (Sandbox Code Playgroud)
我目前正在通过以下方式替换空字符串:
for (int i = 0; i < _array.Length; i++)
{
if (_array[i].Trim() == "")
{
_array[i] = null;
}
}
Run Code Online (Sandbox Code Playgroud)
它在小型数组上工作正常,但我正在追逐一些在执行任务时效率最高的代码,因为我正在使用的数组可能要大得多,我会一遍又一遍地重复这个过程.
是否有linq查询或更高效的东西?
你可能会考虑换_array[i].Trim() == ""用string.IsNullOrWhitespace(_array[i]),以避免新的字符串分配.但是,你可以做的就是让它更快并且仍然保持顺序.LINQ不会比for循环更快.
您可以尝试使您的处理并行,但这似乎是一个更大的变化,因此您应该评估在您的方案中是否可以.
Parallel.For(0, _array.Length, i => {
if (string.IsNullOrWhitespace(_array[i]))
{
_array[i] = null;
}
});
Run Code Online (Sandbox Code Playgroud)