小编All*_*lan的帖子

String.Split() 使用 VbCrLf 不起作用,但首先用 "" 替换 VbCr 然后在 VbLf 上拆分确实有效。为什么?

我有一个嵌入的文本文件作为资源。内容是:

Apple
Pear
Orange
Run Code Online (Sandbox Code Playgroud)

我试图把它拉成一个List(Of String)但回车和换行符把它搞砸了。
例如我试试这个:

Dim myNames As List(Of String) = My.Resources.TreeNames.Split(CChar(vbCrLf)).ToList
Run Code Online (Sandbox Code Playgroud)

但是正在传递换行符:

"Apple"
vbLf & "Pear"
vbLf & "Orange"
Run Code Online (Sandbox Code Playgroud)

所以我尝试使用环境变量:

Dim myNames As List(Of String) = My.Resources.TreeNames.Split(CChar(Environment.NewLine)).ToList
Run Code Online (Sandbox Code Playgroud)

但这会导致完全相同的输出。
所以我尝试在换行符上拆分它:

Dim myNames As List(Of String) = My.Resources.TreeNames.Split(CChar(vbLf)).ToList
Run Code Online (Sandbox Code Playgroud)

现在正在传递回车符:

"Apple" & vbCr
"Pear" & vbCr
"Orange"
Run Code Online (Sandbox Code Playgroud)

所以我让这个工作的唯一方法是首先用空替换vbCr然后在左边拆分vbLf

Dim myNames As List(Of String) = Replace(My.Resources.TreeNames, vbCr, "").Split(CChar(vbLf)).ToList
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么?如果我使用以下命令将文件直接拉入字符串:

Dim myNames as String = My.Resources.TreeNames
Run Code Online (Sandbox Code Playgroud)

我得到:

"Apple" & vbCrLf & "Pear" & vbCrLf & "Orange" …
Run Code Online (Sandbox Code Playgroud)

vb.net split carriage-return winforms linefeed

1
推荐指数
1
解决办法
130
查看次数

标签 统计

carriage-return ×1

linefeed ×1

split ×1

vb.net ×1

winforms ×1