我想用分隔符“;”分割字符串 并应用StringSplitOptions.TrimEntries和StringSplitOptions.RemoveEmptyEntries。我尝试使用 StringSplitOptions 数组,例如
// myString already defined elsewhere
StringSplitOptions[] options = { StringSplitOptions.TrimEntries, StringSplitOptions.RemoveEmptyEntries };
string[] strs = myString.Split(';', options);
Run Code Online (Sandbox Code Playgroud)
但这不能编译。我知道我可以稍后使用 Trim() 删除空格,但更喜欢干净的单语句解决方案,并且似乎您应该能够使用多个(两个)选项。在StringSplitOptions enum的页面中,它提到
如果同时指定RemoveEmptyEntries 和TrimEntries,则仅由空白字符组成的子字符串也会从结果中删除。
页面的其余部分和 String.Split() 方法的页面都没有给出任何有关如何将它们一起指定的指示。
我可能会错过一些简单的东西,因为我对 C# 相当陌生并且是自学的。如果这篇文章的格式不好或者是重复的问题,请原谅,这是 Stack Overflow 上的第一篇文章。我尝试搜索这个问题,但没有看到任何结果。预先感谢您可以提供任何指导?
Ser*_*nov 26
StringSplitOptions枚举带有[Flags]属性标记,可以通过|运算符组合多个Flags。
using System;
public class Program
{
public static void Main()
{
var myString = " ; some test ; here; for; test ; ; ;";
string[] strs = myString.Split(';', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
foreach (var str in strs)
{
Console.WriteLine($"-{str}-");
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
-some test-
-here-
-for-
-test-
Run Code Online (Sandbox Code Playgroud)
或者
StringSplitOptions splitOptions = StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries;
string[] strs = myString.Split(';', splitOptions);
Run Code Online (Sandbox Code Playgroud)