40

我有这个:

List<string> s = new List<string>{"", "a", "", "b", "", "c"};

我想在("")不使用foreach语句的情况下快速(可能通过 LINQ)从中删除所有空元素,因为这会使代码看起来很难看。

4

4 回答 4

65

您可以使用List.RemoveAll

C#

s.RemoveAll(str => String.IsNullOrEmpty(str));

VB.NET

s.RemoveAll(Function(str) String.IsNullOrEmpty(str))
于 2013-01-13T22:45:21.880 回答
13

List.RemoveAll用withString.IsNullOrEmpty()方法检查;

指示指定的字符串是 null 还是 Empty 字符串。

s.RemoveAll(str => string.IsNullOrEmpty(str));

这是一个DEMO.

于 2013-01-13T22:46:39.423 回答
10
s = s.Where(val => !string.IsNullOrEmpty(val)).ToList();
于 2013-01-13T22:46:09.753 回答
0

我写下面的代码来删除空白值

List<string> s = new List<string>{"", "a", "", "b", "", "c"};
s = s.Where(t => !string.IsNullOrWhiteSpace(t)).Distinct().ToList();
于 2019-04-26T05:15:01.033 回答