Acho que deve ser isto que esteja querendo fazer,
Bons estudos e boa sorte:
private void Form1_Shown ( object sender, EventArgs e ) {
String str = "[ [ 6 ], [ 3,5 ], [ 9,7,1 ], [ 4,6,8,4 ] ]";
/*
Como você pretende converter a string apresentada num array de inteiros,
de quatro posições então vai precisar eliminar os colchetes e as virgulas,
para isto vamos começar declarando uma string temporária e um array de string,
temporário da seguinte forma:
*/
//Declaramos uma string temporária e por ordem do compilador a inicializamos.
String str_1 = "";
//Aqui declaramos um array de string temporário e inicializamos com a string a ser
//convertida Invocando o método Split() para remoção de todas as virgulas.
String [ ] Sep_1 = str.Split ( ',' );
//Um loop é necessário para que possamos percorrer todos os caracteres da string.
for ( int i = 0; i < Sep_1.Length; i++ ) {
//str_1 recebe todos os caracteres da string sem as virgulas que foram removidas.
str_1 += Sep_1 [ i ];
}
//Aqui imprimimos opcionalmente a string sem suas virgulas que foram removidas
//label1.Text += str_1;
/*
Na verdade o método Split() removeu todas as virgulas, mas ainda não
é suficiente, precisamos remover os colchetes de abertura e de fechamento,
Para isto vamos declarar uma segunda string temporária e um segundo array
de string que opera também de forma temporária.
*/
//Declaramos uma segundaa string temporária e Por ordem do compilador a inicializamos.
String str_2 = "";
//Aqui declaramos mais um array de string temporário e o inicializamos com a primeira string
//temporária que criamos Invocando o método Split() para remover todos os colchetes de abertura.
String [ ] Sep_2 = str_1.Split ( '[' );
//Um loop é necessário para que possamos percorrer todos os caracteres da string.
for ( int i = 0; i < Sep_2.Length; i++ ) {
str_2 += Sep_2 [ i ];
}
//Aqui imprimimos opcionalmente a string sem suas virgulas e sem seus
//colchetes de abertura que foram removidos
//label1.Text += str_2;
/*
Na verdade o método Split() removeu todos as virgulas e todos os colchetes de abertura
mas ainda não é suficiente, precisamos remover todos os colchetes de fechamento,
Para isto vamos declarar um terceiro array de string que opera também de forma temporária.
*/
//Aqui declaramos mais um array de string temporário e o inicializamos com a segunda string
//temporária que criamos Invocando o método Split() para remover todos os colchetes de fechamento.
String [ ] Sep_3 = str_2.Split ( ']' );
//Aqui imprimimos opcionalmente o array de string sep_3 que recebeu da string str_2
//a remoção dos colchetes de fechamento que faltava ser removido pelo método Split()
//for ( int i = 0; i < Sep_3 [ i ].Length; i++ )
//label1.Text += Sep_3 [ i ];
//Aqui declaramos um array de inteiro que receberá a conversão da string
//que teve suas virgulas e colchetes removidos pelo método Split(),
//restando apenas só sua parte numérica.
int [ ] arr = new int [ Sep_3.Length ];
//Um loop é necessário para que possamos percorrer todos os caracteres da string.
for ( int i = 0; i < Sep_3 [ i ].Length; i++ ) {
//Para a conversão poderiamos usar o método parse ou TryParse,
//mas o método Convert faz isto de uma maneira mais curta.
arr [ i ] = Convert.ToInt32 ( Sep_3 [ i ].ToString ( ) );
}
//Um loop é necessário para que possamos percorrer todas as posições de nosso
//array de inteiros e imprimilo corretamente (usei um label num form, mas teste
//com Console.Write num projeto de console sem problemas )
for ( int i = 0; i < Sep_3 [ i ].Length; i++ ) {
label1.Text += arr [ i ].ToString ( ) + " ";
}
label1.Text += "\n\n";
//Imprimindo abaixo cada posição separadamente
label1.Text += arr [ 0 ] + " - ";
label1.Text += arr [ 1 ] + " - ";
label1.Text += arr [ 2 ] + " - ";
label1.Text += arr [ 3 ];
}