Eli*_*ing 13
数组的长度是不可变的,但您可以创建一个没有空""字符串的新数组:
string[] newArray = myArray.Where(str => str != "").ToArray();
Run Code Online (Sandbox Code Playgroud)
呃......只是调整它的大小
Array.Resize(ref theArray, theArray.Length -1);
Run Code Online (Sandbox Code Playgroud)
来自文档
public static void Resize(ref T [] array,int newSize)
如果它是一个字符串数组,您可以执行以下操作:
string[] results = theArray.Where(s => !string.IsNullOrWhitespace(s)).ToArray();
Run Code Online (Sandbox Code Playgroud)
如果您只是要迭代结果,则无需转换回数组,您可以.ToArray()在结束时离开.
编辑:
如果您只想删除最后一个单元格而不是空条目(根据编辑版本的建议),您可以使用Array.Copy比使用上面的LINQ语句更有效:
string[] results = new string[theArray.Length - 1];
Array.Copy( theArray, results, results.Length );
Run Code Online (Sandbox Code Playgroud)
数组是固定大小的集合对象.这使得它很不适合你想做的事情.你能做的最好的事情就是用少一个元素创建另一个.这太贵了.
修复真正的问题,这应该是一个List<string>,现在很简单.