C#字符串数组拆分无效参数

时间:2015-03-22 19:49:36

标签: 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.StringSplitOptions)的最佳重载方法匹配''有一些无效的参数”):

string input = "one two one three one";
string[] numbers = { "one", "two", "three", "four" };
string[] brokenSplitTest = input.Split(numbers[0], StringSplitOptions.None);

两种方法都引用字符串数组分隔符。我错过了一些基本的东西吗?我需要对第二种方法做出哪些改变?

3 个答案:

答案 0 :(得分:1)

当您索引数组numbers[0]时,结果是一个字符串 - “one”。 一个选项 - 如果您需要数字数组 - 就是这样写: string[] brokenSplitTest = input.Split(new string[] { numbers[0] }, StringSplitOptions.None); 否则只需使用第一个选项。

答案 1 :(得分:0)

在第一个示例中,您传递了string array元素one

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

documentation表示它需要一个字符串数组,而不是文字。

答案 2 :(得分:0)

new string[] { "one" }不能与numbers[0]

互换

在此处使用索引数组值的正确方法是:

new string[] { numbers[0] }