【问题标题】:Splitting strings in VB.Net在 VB.Net 中拆分字符串
【发布时间】:2024-01-30 12:40:01
【问题描述】:

我有这个代码:

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 的错误吗?

【问题讨论】:

    标签: vb.net string split


    【解决方案1】:

    无法重现:

    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 编译,以避免这是一个丢失的重载问题)。在这两种情况下,编译后的代码都适当地使用了枚举值,而不是将其转换为数字。

    我怀疑您的问题出在其他地方。请尝试使用演示问题的简短但完整的程序来编辑您的问题。

    【讨论】:

    • 确实,我一定在某些时候做错了什么。对不起!
    【解决方案2】:

    我看不出问题出在哪里:

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

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

    【讨论】:

      最近更新 更多