Posso dividere una stringa in stile c # VB6 senza fare riferimento a Microsoft.VisualBasic?
Domanda
Sfortunatamente, sembra che non ci siano string.Split (separatore di stringhe), solo string.Split (char speparator).
Voglio spezzare la mia stringa in base a un separatore multi-carattere, come VB6. Esiste un modo semplice (ovvero, non facendo riferimento a Microsoft.VisualBasic o dover imparare RegExes) di farlo in c #?
EDIT: utilizzando .NET Framework 3.5.
Soluzione
String.Split()
presenta altri sovraccarichi. Alcuni di loro accettano string[]
argomenti.
string original = "first;&second;&third";
string[] splitResults = original.Split( new string[] { ";&" }, StringSplitOptions.None );
Altri suggerimenti
il regex per dividere la stringa è estremamente semplice, quindi vorrei andare con quella rotta.
Quale versione di .Net? Almeno 2.0 in poi include i seguenti sovraccarichi:
.Split(string[] separator, StringSplitOptions options)
.Split(string[] separator, int count, StringSplitOptions options)
Ora, se lo risolvessero solo per accettare qualsiasi IEnumerable < string > anziché solo array.
La versione regex è probabilmente più carina ma funziona anche così:
string[] y = { "bar" };
string x = "foobarfoo";
foreach (string s in x.Split(y, StringSplitOptions.None))
Console.WriteLine(s);
Questo verrà stampato due volte.
string[] stringSeparators = new string[] {"[stop]"};
string[] result;
result = someString.Split(stringSeparators, StringSplitOptions.None);
via http://msdn.microsoft.com/en-us/ biblioteca / tabh47cf.aspx
Lo uso sempre in .NET 2.0.
string[] args = "first;&second;&third".Split(";&".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);