Convertire una Stringa in un array di Int

Avendo la necessità di convertire una stringa con separatori in un array di interni, si possono seguire due strade: una tradizionale (poco elegante) ed una che usa le espressioni lambda.
A voi la valutazione della differenza:

private void Main()
{
string s1 = “1;2;3;4;5;6;7;8;9;10;11;12”;
int[] ia = Converti(valore, ‘|’);
}
int[] Converti(string Valore, char Separatore)
{
string[] stringArray = Valore.Split(Separatore);
int[] intArray = new int[stringArray.Length];
for (int i = 0; i < intArray.Length; ++i)
{
int j;
string s = stringArray[i];
if (int.TryParse(s, out j))
{
intArray[i] = j;
}
}
return intArray;
}


string valore = "1;2;3;4;5;6;7;8;9;10;11;12";
int[] intArray = valore.Split(';').Select(n => Convert.ToInt32(n)).ToArray();
//oppure
int[] intArray = valore.Split(';').Select(int.Parse).ToArray();

… Potenza delle LE …