C# Split() 函数不起作用

Posted

技术标签:

【中文标题】C# Split() 函数不起作用【英文标题】:C# Split() function is not working 【发布时间】:2017-12-30 03:51:07 【问题描述】:

您好,我是 C# 新手,实际上对编程很陌生,我遇到了拆分功能的问题。我正在尝试将单个字符串从文本框中拆分为多个字符串。

我收到以下错误:

CS1061 'string[]' 不包含 'Split' 的定义并且没有 扩展方法“拆分”接受“字符串 []”类型的第一个参数 可以找到(您是否缺少 using 指令或程序集 参考?)

我做了以下事情: * 检查是否添加了 system.core dll 作为参考 *使用系统检查。Linq 在程序上 *检查目标框架是 4.0

我无法解决这个问题。

错误代码:

string[] sampNumStrings = new string[]  textBoxBarcode.Text ;
string[] newSampNumStrings = sampNumStrings.Split(new string[]  "\r\n", "\r", "\n" , StringSplitOptions.None);

【问题讨论】:

Split() 用于单个字符串,而不是您尝试做的字符串数组。 您需要在帖子中包含您的代码,而不是屏幕截图。无论如何,您在 array 字符串上调用 .split(),而不是 string 一个文本框也不会返回一个字符串数组,它返回一个字符串,那么你是如何得到一个数组的呢? 感谢大家的意见,所有的答案都非常有帮助。我想这会是我忽略的东西,但我猜这是学习过程的一部分。再次感谢。 【参考方案1】:

您将sampNumStrings 定义为字符串的数组,这就是[]string[] 中的含义。数组没有Split() 方法。你应该这样做:

string sampNumStrings = textBoxBarcode.Text;
string[] newSampNumStrings = sampNumStrings.Split(new string[]  "\r\n", "\r", "\n" , StringSplitOptions.None);

或者更好的是,在一行中:

string[] newSampNumStrings = textBoxBarcode.Text.Split(new string[]  "\r\n", "\r", "\n" , StringSplitOptions.None);

【讨论】:

【参考方案2】:

因为没有字符串数组的方法。拆分方法适用于String类型。

string source = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]";
string[] result = source.Split(new string[] "[stop]", StringSplitOptions.None);

看到这个:https://docs.microsoft.com/en-us/dotnet/api/system.string.split?view=netframework-4.7.1#System_String_Split_System_String___System_StringSplitOptions_

【讨论】:

【参考方案3】:

string[] 是一个数组,所以它不支持 Split() 方法。 如果仅从 1 个文本框中获取字符串,则将字符串 [] 替换为字符串。 例子: 字符串 samNumString = txtBarCode.Text; string[] newNumStrings = samNumString.Split(....);

【讨论】:

【参考方案4】:

如果您想根据特定的拆分选项拆分字符串数组,您可以执行以下操作:

 string[] sampNumStrings = new string[]  "Test String", "Test String1", "Test String 2" ;
 string[][] newSampNumStrings = sampNumStrings.Select(var=>var.Split(new string[]  " ", "\r", "\n" , StringSplitOptions.None)).ToArray();

正如其他人所说,您只能对字符串执行拆分操作,而数组不支持拆分操作

【讨论】:

以上是关于C# Split() 函数不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 c# 中线程化函数不起作用

C# 创建 websocket - onmessage 函数不起作用

在单独的线程中调用时,C# 2.0 函数不起作用

通过托管标识从 c# Azure 函数检索配置值的 Azure 应用程序配置不起作用

设置 TabTip 键盘 c# 的位置不起作用

Selenium + C#:ExecuteAsyncScript 不起作用