c# - 为什么 string.Split (';' ) 有效但 string.Split (':' ,StringSplitOptions.RemoveEmptyEntries) 无效?

标签 c# .net .net-4.0

我很困惑 string.Split(';') 正在解析哪个重载;我不认为 ';' 是一个字符数组,对吗?

然而,这编译正常,但如果我尝试添加第二个 StringSplitOptions 参数,则找不到合适的重载。

我不喜欢必须执行 new char []{';'} 这可以避免吗?

最佳答案

first overload String.Split() 的参数定义为

params char[] separator

这意味着您可以传递任意数量的 char 参数并且它会起作用:

someString.Split('1', '2', '3');
// or just one separator
someString.Split(';');

second overload不同的是,它是这样定义参数的

char[] separator, StringSplitOptions options

注意,没有params .这需要你传递 char[] 参数:

someString.Split(new[] {'1', '2', '3'}, StringSplitOptions.None);
// or just one separator
someString.Split(new[] {';'}, StringSplitOptions.None);

关于c# - 为什么 string.Split (';' ) 有效但 string.Split (':' ,StringSplitOptions.RemoveEmptyEntries) 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33123725/

相关文章:

c# - WPF 媒体元素,带有 https 的源失败

c# - 为什么这个 F# 代码这么慢?

c# - 限制对只读属性的方法调用的访问

c# - 广度优先遍历

c# - 命名空间 'Forms' 中不存在类型或命名空间名称 'System.Windows'

c# - 英语自然句的算法

c# - Windows 窗体 - 自定义用户控件

c# - 使用 WorkflowServiceHost 托管工作流

c# WebClient 调用在 .NET 3.5 中有效,但在 .NET 4.0 中无效

.net - .NET 4 GUID 是如何生成的?