Puis-je scinder une chaîne dans le style c # VB6 sans faire référence à Microsoft.VisualBasic?
Question
Malheureusement, il ne semble pas y avoir de chaîne.Split (séparateur de chaîne), uniquement string.Split (spécificateur de caractère).
Je souhaite séparer ma chaîne en fonction d'un séparateur multi-caractères, à la VB6. Existe-t-il un moyen simple (c’est-à-dire de ne pas référencer Microsoft.VisualBasic ou d’apprendre RegExes) à le faire en c #?
EDIT: Utilisation de .NET Framework 3.5.
La solution
String.Split()
a d'autres surcharges. Certains d'entre eux prennent string[]
des arguments.
string original = "first;&second;&third";
string[] splitResults = original.Split( new string[] { ";&" }, StringSplitOptions.None );
Autres conseils
la regex pour diviser la chaîne est extrêmement simple, donc je voudrais aller avec cette route.
Quelle version de .Net? Les versions 2.0 et suivantes au moins incluent les surcharges suivantes:
.Split(string[] separator, StringSplitOptions options)
.Split(string[] separator, int count, StringSplitOptions options)
Maintenant, si seulement ils résolvaient ce problème, ils accepteraient n'importe quel IEnumerable < string > au lieu de juste un tableau.
La version regex est probablement plus jolie mais cela fonctionne aussi:
string[] y = { "bar" };
string x = "foobarfoo";
foreach (string s in x.Split(y, StringSplitOptions.None))
Console.WriteLine(s);
Ceci imprimera deux fois foo.
string[] stringSeparators = new string[] {"[stop]"};
string[] result;
result = someString.Split(stringSeparators, StringSplitOptions.None);
via http://msdn.microsoft.com/en-us/ bibliothèque / tabh47cf.aspx
Je l’utilise tout le temps sous .NET 2.0.
string[] args = "first;&second;&third".Split(";&".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);