Posso dividere una stringa in stile c # VB6 senza fare riferimento a Microsoft.VisualBasic?

StackOverflow https://stackoverflow.com/questions/154706

  •  03-07-2019
  •  | 
  •  

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.

È stato utile?

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.

http://msdn.microsoft.com/en-us/library /8yttk7sy.aspx

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top