我有这段代码:
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
错误吗?
答案 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个元素。