VB.NET split sur les nouvelles lignes de C# conversion)
Je suis en train de convertir ce code en C# pour VB.NET
string[] lines = theText.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
Voici ce que j'ai, le problème est qu'il est l'impression de l'ensemble de la zone de texte contenu dans la messagebox, au lieu de chaque ligne.
Dim Excluded() As String
Dim arg() As String = {"\r\n", "\n"}
Excluded = txtExclude.Text.Split(arg, StringSplitOptions.None)
For i As Integer = 0 To Excluded.GetUpperBound(0)
MessageBox.Show("'" & Excluded(i) & "'")
Next
Avez-vous essayé un convertisseur en ligne? Il me donne
merci pour le C# 😀
Dim lines As String() = theText.Split(New String() {vbCr & vbLf, vbLf}, StringSplitOptions.None)
merci pour le C# 😀
OriginalL'auteur Chris | 2011-06-20
Vous devez vous connecter pour publier un commentaire.
Les séquences d'échappement n'existent pas vraiment dans VB .Net autant que les littéraux de chaîne sont concernés.
Il y a 2 des constantes spéciales que vous pouvez utiliser à la place:
vbCrLf
vbLf
Devrait faire l'affaire (non testé).
Petite erreur: vbCrLf est équivalent à C# "\r\n", mais vbNewLine est une plate-forme de personne à charge. Sur une plate-forme Windows (ce serait différent s'il est exécuté sur Linux avec mono par exemple), vbNewLine est aussi l'équivalent des "\r\n". Si ce code n'est pas strictement équivalente à la version C#: "\n" ne sera jamais pris! Utilisation vbLf ou ControlChars.Lf
C'est bizarre.. comment peut-const être dépend de la plateforme, en fait? Il ne pouvait que représenter le moment de la compilation plate-forme, pas le moment de l'exécution de la plate-forme. Il s'avère qu'elle ne l'est pas, c'est égal à
vbCrLf
, même sur mono: github.com/mono/mono-basic/blob/master/vbruntime/...Vous avez raison; dans le mono cas, il semble vbNewLine = \r\n. Je suppose que l'équipe de mono fait le choix en faveur de la langue de compatibilité sur OS conventions. De toute façon, d'après MSDN, vbNewline représentent qu'une "nouvelle ligne", pas clairement la chaîne de caractères spécifiée. Bien que rare, sa valeur réelle peut changer en fonction de plates-formes ou des implémentations. vbCrLf ne doit jamais changer.
Et concernant le cas général d'une plate-forme dépendant de la const, c'est facilement réalisable, être à l'aide de #si les instructions préprocesseur... faire Défiler un peu dans le mono vb runtime code source et vous remarquerez que certaines constantes ne sont pas définis dans le clair de lune de cas. Même les constructions pourrait être utilisée pour définir une autre valeur à une constante en fonction de la plate-forme cible.
OriginalL'auteur Jaymz
Vous ne pouvez pas utiliser la barre oblique inverse (
\
) pour échapper les caractères en VB. Utiliser leControlChars
classe:ControlChars
à la place de la vieille VB6-style de noms de constantes. 🙂oui vb.net n'ont pas les caractères d'échappement, donc vous devez utiliser ces caractères spéciaux.
Fonctionne également très bien, merci
OriginalL'auteur Guffa
À partir d'un convertisseur en ligne:
Votre code c#:
string[] lines = theText.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
Converti à VB.NET:
OriginalL'auteur Predator