Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#字符串数组拆分无效参数_C#_Arrays_String_Split - Fatal编程技术网

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
传递一个
字符串数组

在第二个示例中,您将字符串literal
one
作为参数传递

声明它需要的是字符串数组,而不是文本

新字符串[]{“一”}
不能与
数字[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);