/ / c # Existe uma maneira simples de pegar uma matriz multi-dividida e transformá-la em apenas uma matriz seqüencial? - c #, matrizes, lista

c # Existe uma maneira simples de usar um array multi-split e transformá-lo em apenas um array sequencial? - c #, matrizes, lista

Então, basicamente, eu tenho uma string "um-dois; três-quatro; cinco-seis"

Quando eu divido ";" torna-se uma matriz:

one-two  three-four  five-six
[0]       [1]        [2]

Em seguida, foreach (string s na matriz), divido o "-", torna-se

one  two     three  four     five  six
[0]  [1]      [0]   [1]       [0]  [1]

Gostaria que fosse uma matriz assim:

one two three four five six
[0] [1]  [2]   [3]  [4] [5]

Para referência, meu código é praticamente o seguinte no momento. (Peharps eu devo criar uma lista ...?)

string pairsList="one-two;three-four;five-six";

string[] pairArray=pairsList.Split(";");

foreach(string s in pairArray)
{
string[] splitPair=s.Split(",");
}

Respostas:

1 para resposta № 1

Você está lá principalmente:

string pairsList="one-two;three-four;five-six";
List<string> result = new List<string>();

string[] pairArray=pairsList.Split(";");

foreach(string s in pairArray)
{
string[] splitPair=s.Split("-");
foreach (var thing in splitPair)
{
result.add(thing);
}
}

return result.ToArray();

Ainda melhor: divida em todos os tokens de uma só vez:

string pairsList="one-two;three-four;five-six";

string[] pairArray=pairsList.Split(";", "-");

return pairArray;

2 para resposta № 2

Você pode simplesmente perguntar string.Split dividir pelo - também.

string.Split Leva um params char[] separator lista de argumentos para que você possa simplesmente pedir que ele se divida por - também:

string[] pairArray = pairsList.Split(";", "-" );