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# 创建 websocket - onmessage 函数不起作用