我有這樣的:從字符串數組中刪除所有空元素
List<string> s = new List<string>{"", "a", "", "b", "", "c"};
我想從它很快(可能通過LINQ),而不使用foreach
聲明,因爲這使代碼刪除所有空元素("")
看起來很醜陋。
我有這樣的:從字符串數組中刪除所有空元素
List<string> s = new List<string>{"", "a", "", "b", "", "c"};
我想從它很快(可能通過LINQ),而不使用foreach
聲明,因爲這使代碼刪除所有空元素("")
看起來很醜陋。
您可以使用List.RemoveAll
:
C#
s.RemoveAll(str => String.IsNullOrEmpty(str));
VB.NET
s.RemoveAll(Function(str) String.IsNullOrEmpty(str))
我會簡單地寫's.RemoveAll(String.IsNullOrEmpty);',在這種情況下你不需要lambda。 –
@PaoloMoretti:+1好點。但至少在VB.NET中,它並不是真的更短:'s.RemoveAll(AddressOf String.IsNullOrEmpty)',lamdba表明可以輕鬆修改它。 Imho與lambda更具可讀性。 –
爲什麼它會返回已移除元素的數量而不是清除列表?這個'int count = s.RemoveAll(string.IsNullOrEmpty);'是有效的,但是'List
退房與List.RemoveAll
與String.IsNullOrEmpty()
方法;
指示指定的字符串是否爲空或空字符串。
s.RemoveAll(str => string.IsNullOrEmpty(str));
這裏是一個DEMO
。
幾乎是一個副本:[如何從通用列表中刪除「空」項?](http://stackoverflow.com/q/12849528/256431) –
順便說一句,那不是一個'string'數組,而是一個列表。 –