从数组C#中删除字符串

aha*_*ron 4 .net c# arrays

是否有从数组中删除最后一个单元格的函数?

它是一个字符串数组,如:{"a","b","c",""}.

Eli*_*ing 13

数组的长度是不可变的,但您可以创建一个没有空""字符串的新数组:

string[] newArray = myArray.Where(str => str != "").ToArray();
Run Code Online (Sandbox Code Playgroud)


seh*_*ehe 8

呃......只是调整它的大小

 Array.Resize(ref theArray, theArray.Length -1);
Run Code Online (Sandbox Code Playgroud)

来自文档

public static void Resize(ref T [] array,int newSize)


Ree*_*sey 6

如果它是一个字符串数组,您可以执行以下操作:

 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)


Han*_*ant 5

数组是固定大小的集合对象.这使得它很不适合你想做的事情.你能做的最好的事情就是用少一个元素创建另一个.这太贵了.

修复真正的问题,这应该是一个List<string>,现在很简单.