Vb.net TextFieldParser分隔符无法识别字符串

Vb.net TextFieldParser分隔符无法识别字符串,vb.net,Vb.net,我觉得这很简单,但我不明白为什么下面会有这样的东西 Dim MyDelimeter as string = "vbTab" MyReader.Delimiters = New String() {MyDelimeter } 它无法将MyDelimeter识别为tab。如果我愿意的话,它会起作用的 Dim MyDelimeter as string = "," 你能解释一下为什么会这样吗?我的delimeters来自xml序列化文件,因此我想遗憾地说,它们不适用于vbtab。使用 MyRead

我觉得这很简单,但我不明白为什么下面会有这样的东西

Dim MyDelimeter as string = "vbTab"
MyReader.Delimiters = New String() {MyDelimeter }
它无法将MyDelimeter识别为tab。如果我愿意的话,它会起作用的

Dim MyDelimeter as string = ","
你能解释一下为什么会这样吗?我的delimeters来自xml序列化文件,因此我想遗憾地说,它们不适用于vbtab。

使用

MyReader.Delimiters = New String() {vbTab}
而不是

MyReader.Delimiters = New String() { "vbTab" }
是制表符字符的visual basic常量,而字符串文字
“vbTab”
只是文本
“vbTab”

如果已将值
“vbTab”
存储在文件中以指示应使用的分隔符,则必须使用
If…Else
Select..Case
来使用
vbTab
常量。当然,您也可以将真正的制表符存储在文件中,但我猜您不希望这样做,因为它不是真正可见的

比如说

If delimiterInFile = "vbTab" Then
    MyReader.Delimiters = New String() {vbTab}
ElseIf delimiterInFile = "comma" Then
    MyReader.Delimiters = New String() {","}
ElseIf delimiterInFile = "pipe" Then
    MyReader.Delimiters = New String() {"|"}
    ' ....
Else
    MyReader.Delimiters = New String() {","}
End If

`“vbTab”是字符串文字。我怀疑你的文件中到处都是“vbtab”,我知道这一点,但如何将我从xml序列化文件中输出的字符串放在MyReader中,表示必须使用哪个delimeter。分隔符?@未知:我已编辑了我的答案。您必须使用
If..else
Select.
我完全按照您发布的那样做:)它几乎是我想要的,但无论如何,我希望在它内部创建额外的类和方法,根据我从序列化xml传递给它的内容返回新字符串(){..}。问题是我的进一步方法应该作为类型返回什么如果大多数delimeters是字符串,那么我会返回字符串,但是如果是vbTab,那么我不能将其作为字符串返回。@unknown:恐怕您在那里找不到我,
vbTab
是一个
string