2010-09-12 5 views
0

Je possède ce code:chaînes de Fractionnement dans VB.Net

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

Lors de l'exécution, StringParts ont toujours un élément, parce que StringSplitOptions.RemoveEmptyEntries = 1.

Comment puis-je dire à VB.Net d'utiliser la bonne fonction et de ne pas comprendre StringSplitOptions.RemoveEmptyEntries comme paramètre count?

Merci!

Remarque: L'utilisation de New String() {"\"} au lieu de New Char() {"\"c} fonctionne. Est-ce un bug .Net?

Répondre

2

Impossible de reproduire:

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 

L'imprimante code ci-dessus 3 (compilé avec les deux VS2010 et VS2008, pour éviter ce qui est un problème de surcharge manquante). Dans les deux cas, le code compilé est en utilisant la valeur enum de manière appropriée, plutôt que de le convertir en un nombre. Je soupçonne que votre problème est ailleurs. S'il vous plaît essayez d'éditer votre question avec un programme court mais complet qui démontre le problème.

+0

En effet, je dois avoir fait quelque chose de mal à un moment donné. Pardon! –

2

Je ne vois pas où est le problème:

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

fonctionne comme prévu. StringParts contient 3 éléments.

Questions connexes