C#字符串数组拆分无效参数
为什么编译时没有错误:C#字符串数组拆分无效参数,c#,arrays,string,split,C#,Arrays,String,Split,为什么编译时没有错误: string input = "one two one three one"; string[] numbers = { "one", "two", "three", "four" }; string[] workingSplitTest = input.Split(new string[] { "one" }, StringSplitOptions.None); 但这会产生无效参数错误(“与'string.Split(string[],System.StringSpl
string input = "one two one three one";
string[] numbers = { "one", "two", "three", "four" };
string[] workingSplitTest = input.Split(new string[] { "one" }, StringSplitOptions.None);
但这会产生无效参数错误(“与'string.Split(string[],System.StringSplitOptions')匹配的最佳重载方法具有一些无效参数”):
这两种方法都引用字符串数组分隔符。我是不是错过了一些基本的东西?要使第二种方法发挥作用,我需要做哪些更改?在第一个示例中,您通过元素
one
传递一个字符串数组
在第二个示例中,您将字符串literalone
作为参数传递
声明它需要的是字符串数组,而不是文本 新字符串[]{“一”}
不能与数字[0]
此处使用索引数组值的正确方法是:
newstring[]{numbers[0]}
当您索引到数组numbers[0]
时,结果是单个字符串-“一”。
如果您需要数字数组,可以这样编写:
string[]brokensplitest=input.Split(新字符串[]{numbers[0]},StringSplitOptions.None);
否则只需使用第一个选项。因为没有字符串重载。接受字符串作为第一个参数的拆分(数字[0]是字符串而不是数组)如果这是一个愚蠢的问题,很抱歉,但为什么分隔符需要是数组?如果只有一个分隔符,我就不明白为什么需要数组。我的理解是,只有当我计划传递大于1的分隔符时,才需要数组。我的想法错了吗?你是对的,应该有一个重载来接受单个字符串,但事实上没有,所以你不能这样做。不要找理由来解释这是为什么。
string input = "one two one three one";
string[] numbers = { "one", "two", "three", "four" };
string[] brokenSplitTest = input.Split(numbers[0], StringSplitOptions.None);