2012-02-21 104 views
4

我有一个字符串数组。我需要从该阵列中删除一些项目。但我不知道需要删除的项目的索引。查找并从c中删除项目#

我的数组是:string [] arr = {“”,“a”,“b”,“”,“c”,“”,“d”,“”,“e”,“f”, “”,“”}。

我需要删除“”项目。即删除“”我的结果应该是 arr = {“a”,“b”,“c”,“d”,“e”,“f”}

我该怎么做?

+0

.NET是什么版本的?在.NET 3.5中引入的一些LINQ扩展方法将是完美的。 – GregL 2012-02-21 10:08:12

+0

这里有几个问题和答案。检查出http://stackoverflow.com/questions/457453/remove-element-of-a-regular-array – 2012-02-21 10:08:52

回答

8
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); 

然后空项做数组不会把你的字符串数组首先