C#分割字符串并删除空字符串

Sah*_*rma 6 c#

我想在拆分操作中删除空字符串和空字符串:

 string number = "9811456789,   ";
 List<string> mobileNos = number.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(mobile => mobile.Trim()).ToList();
Run Code Online (Sandbox Code Playgroud)

我尝试了这个,但这并没有删除空白项

ars*_*ars 11

据我了解,它可以对您有所帮助;

string number = "9811456789, ";
List<string> mobileNos = number.Split(',').Where(x => !string.IsNullOrWhiteSpace(x)).ToList();
Run Code Online (Sandbox Code Playgroud)

结果列表中只有一个元素为 [0] = "9811456789"。

希望对你有帮助。


And*_*ita 9

var mobileNos = number.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)
.Select(mobile => mobile.Trim()).Where(s => s != string.Empty).ToList();
Run Code Online (Sandbox Code Playgroud)

要么

var mobileNos = number.Replace(" ", "")
.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
Run Code Online (Sandbox Code Playgroud)


Ali*_*Ali 6

字符串扩展可以以简洁的方式完成此操作,如下扩展:

        public static IEnumerable<string> SplitAndTrim(this string value, params char[] separators)
        {
            Ensure.Argument.NotNull(value, "source");
            return value.Trim().Split(separators, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Trim());
        }
Run Code Online (Sandbox Code Playgroud)

然后你可以将它与任何字符串一起使用,如下所示

 char[] separator = { ' ', '-' };
 var mobileNos = number.SplitAndTrim(separator);
Run Code Online (Sandbox Code Playgroud)


Riz*_*aky 6

最简单和最好的解决方案是使用两者StringSplitOptions.TrimEntries来修剪结果并StringSplitOptions.RemoveEmptyEntries删除通过管道运算符 ( |) 输入的空条目。

string number = "9811456789,   ";
List<string> mobileNos = number
    .Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries)
    .ToList();
Run Code Online (Sandbox Code Playgroud)

查看下面的测试结果来比较每个选项的工作原理,

在此输入图像描述


小智 5

我知道这是一个老问题,但以下方法效果很好:

string number = "9811456789,   ";
List<string> mobileNos = number.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
Run Code Online (Sandbox Code Playgroud)

不需要扩展方法或任何东西。