我试图在VB.NET上做一个VB.NET,但它似乎不起作用。感谢任何帮助,看看我错过了什么:
在C#中:
sFileContents = File.ReadAllText(f.FullName);
sLines = sFileContents.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);在VB.NET中:
sFileContents = File.ReadAllText(f.FullName)
sLines = sFileContents.Split(New String() {"\r\n"}, StringSplitOptions.RemoveEmptyEntries)在C#中,我得到正确分割的行数,而在VB.NET中,我只得到1行。
谢谢
发布于 2016-03-02 17:58:18
转义序列在VB.NET中不起作用。
您应该使用VB.NET常量: vbCrLf,vbLf
sFileContents = File.ReadAllText(f.FullName)
Dim arg() As String = {vbCrLf, vbLf}
sLines = sFileContents.Split(arg, StringSplitOptions.RemoveEmptyEntries)发布于 2016-03-02 17:57:56
用这个:
sFileContents = File.ReadAllText(f.FullName)
sLines = sFileContents.Split({ Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)另外,请注意,在上面的代码中省略了New String()。VB.NET可以直接接受{ <element>, <element> }表单中的数组。因此,不需要New关键字和初始化器。
实际上,您应该使用Environment.NewLine,因为您永远无法确定不同平台上的行尾。
在VB.NET中,"\r\n"被解释为"\r\n"本身,而不是C#那样的Carriage-Return + NewLine。他们被称为特殊人物。VB.NET没有任何东西。只有双引号需要转义(通过使用对)。例如:
Dim result = "He said, ""This is some code.""" 'Yields : He said, "This is some code."另一种选择是使用预定义的VB.NET常量(如vbCrLf ),但我认为Environment.NewLine是一种更好的方法。
https://stackoverflow.com/questions/35754521
复制相似问题