在C#中查找并删除数组中的元素

6
我有一个字符串数组,需要从这个数组中删除一些项,但我不知道需要删除的项的索引。
我的数组是:string [] arr = {"","a","b","","c","","d","","e","f","",""}。
我需要删除 " " 项,即删除 " " 后,我的结果应该是 arr={"a","b","c","d","e","f"}。
如何实现这个功能?

.NET 的哪个版本?.NET 3.5 中引入的一些 LINQ 扩展方法会非常完美。 - GregL
这里已经有一些类似的问题和答案了。请查看https://dev59.com/2XRB5IYBdhLWcg3w9Lvn - Andrei G
可能是使用C#删除数组中的空值的重复问题。 - Jim Fell
4个回答

13
  string[] arr = {" ", "a", "b", " ", "c", " ", "d", " ", "e", "f", " ", " "};
  arr = arr.Where(s => s != " ").ToArray();

6
这将删除所有空值、空字符串或只包含空格的条目:
arr.Where( s => !string.IsNullOrWhiteSpace(s)).ToArray();

如果你只想删除和你的示例一样只有一个空格的条目,你可以这样修改它:

arr.Where( s => s != " ").ToArray();

2

使用 LinQ

using System.Linq;


string[] arr= {" ","a","b"," ","c"," ","d"," ","e","f"," "," "}.
arr.Where( x => !string.IsNullOrWhiteSpace(x)).ToArray();

或者根据你填充数组的方式,你可以在之前完成它。

string[] arr = stringToBeSplit.Split('/', StringSplitOptions.RemoveEmptyEntries);

那么空条目将不会被放入您的字符串数组中。

0

您可以使用 Except 移除空值。

string[] arr={" ","a","b"," ","c"," ","d"," ","e","f"," "," "}.
arr= arr.Except(new List<string> { string.Empty }).ToArray();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接