在VB.Net中拆分字符串

时间:2010-09-12 07:40:35

标签: vb.net string split

我有这段代码:

Dim StringParts As New List(Of String)(OriginalString.Split(New Char() {"\"c}, StringSplitOptions.RemoveEmptyEntries))

运行时,StringParts总是有一个元素,因为StringSplitOptions.RemoveEmptyEntries = 1

如何告诉VB.Net使用正确的功能,而不是将StringSplitOptions.RemoveEmptyEntries理解为count参数?

谢谢!

注意:使用New String() {"\"}代替New Char() {"\"c}有效。这是.Net错误吗?

2 个答案:

答案 0 :(得分:2)

无法重现:

Imports System
Imports System.Collections.Generic

Public Class Test

    Public Shared Sub Main()
      Dim originalString As String = "a\b\c"
      Dim stringParts As New List(Of String)( _
          OriginalString.Split(New Char() {"\"c}, _
          StringSplitOptions.RemoveEmptyEntries))
      Console.WriteLine(stringParts.Count)
    End Sub    

End Class

上面的代码打印3(用VS2010和VS2008编译,以避免这是一个缺少的过载问题)。在这两种情况下,编译后的代码都是,使用适当的枚举值,而不是将其转换为数字。

我怀疑你的问题出在其他地方。请尝试使用简短但完整的程序编辑您的问题,以解决问题。

答案 1 :(得分:2)

我看不出问题出在哪里:

Dim OriginalString = "part1\part2\part3"
Dim StringParts As New List(Of String)( _
    OriginalString.Split( _
        New Char() {"\"}, _
    StringSplitOptions.RemoveEmptyEntries _
    ) _
)

按预期工作。 StringParts包含3个元素。