Usuário com melhor resposta
Ordenar texto de um textbox

Pergunta
-
Respostas
-
Cara depende muito da lógica que vc vai aplicar, vc poderia aplicar um split e na lista gerada aplicar a expressão lambda, levando em consideração que deve ter um separador depois de cada diretório.
string[] listaD = txtId.Text.split(';').Tolist().OrderBy(); ou sort no array de string.
É mais ou menos isso.
Nome : Romy G. Moura Cargo: Analista Programador
- Sugerido como Resposta Eduardo xUni segunda-feira, 18 de agosto de 2014 20:21
- Marcado como Resposta Ricardo Barbosa Cortes terça-feira, 19 de agosto de 2014 19:57
-
Fiz um em C# que deverá ajudar muita gente. Funciona! hehehe
private void btnOrdenar_Click(object sender, EventArgs e) { var arrBaguncadas = txtLetrasBaguncadas.Text.ToArray();//texto que será ordenado var arrOrdenadas = new char[arrBaguncadas.GetLength(0)]; for (int a = 0; a < arrBaguncadas.GetLength(0); a++)//percorrer todas as letras { var letraParaTestar = arrBaguncadas[a]; var posicaoDaLetra = 0; for (int b = 0; b < arrBaguncadas.GetLength(0); b++) //ver em que posição a letra deve estar { //se tiver letra menor ou se a letra está repetida e já existe no array ordenado if (letraParaTestar > arrBaguncadas[b] || arrOrdenadas[b] == letraParaTestar) posicaoDaLetra++; } arrOrdenadas[posicaoDaLetra] = letraParaTestar; } txtLetrasOrdenadas.Text = new string(arrOrdenadas); }
- Marcado como Resposta Marques Junior sexta-feira, 31 de julho de 2015 19:54
Todas as Respostas
-
-
Então, eu tenho uma textbox com os seguintes nomes de arquivos que foram listados de um diretório, como por exemplo:
0_Nome_a
10_Nome_c
8_Nome_c
2_Nome_b
Gostaria de saber se há alguma propriedade na textbox que ordene as linhas para o seguinte:
0_Nome_a
2_Nome_b
8_Nome_c
10_Nome_c
- Editado Marques Junior segunda-feira, 18 de agosto de 2014 17:49
-
Cara depende muito da lógica que vc vai aplicar, vc poderia aplicar um split e na lista gerada aplicar a expressão lambda, levando em consideração que deve ter um separador depois de cada diretório.
string[] listaD = txtId.Text.split(';').Tolist().OrderBy(); ou sort no array de string.
É mais ou menos isso.
Nome : Romy G. Moura Cargo: Analista Programador
- Sugerido como Resposta Eduardo xUni segunda-feira, 18 de agosto de 2014 20:21
- Marcado como Resposta Ricardo Barbosa Cortes terça-feira, 19 de agosto de 2014 19:57
-
Então, fiz o list, porém o arquivo que começa com 10 está vindo primeiro que o arquivo que começa com 2, assim:
0_Nome_a
10_Nome_c
2_Nome_b
8_Nome_c
Dim LinesList As New List(Of String) LinesList.AddRange(TxbResultado.Lines) LinesList.Sort() TxbResultado.Text = Nothing For Each Str As String In LinesList TxbResultado.AppendText(Str & Environment.NewLine) Next
-
Então, fiz o list, porém o arquivo que começa com 10 está vindo primeiro que o arquivo que começa com 2, assim:
0_Nome_a
10_Nome_c
2_Nome_b
8_Nome_c
Dim LinesList As New List(Of String) LinesList.AddRange(TxbResultado.Lines) LinesList.Sort() TxbResultado.Text = Nothing For Each Str As String In LinesList TxbResultado.AppendText(Str & Environment.NewLine) Next
Então a questão é que vc precisa separar o que é texto e o que é numero assim vc teria um controle melhor disso.
Capitou a idea?
Abraço!
Nome : Romy G. Moura Cargo: Analista Programador
-
-
Fiz um em C# que deverá ajudar muita gente. Funciona! hehehe
private void btnOrdenar_Click(object sender, EventArgs e) { var arrBaguncadas = txtLetrasBaguncadas.Text.ToArray();//texto que será ordenado var arrOrdenadas = new char[arrBaguncadas.GetLength(0)]; for (int a = 0; a < arrBaguncadas.GetLength(0); a++)//percorrer todas as letras { var letraParaTestar = arrBaguncadas[a]; var posicaoDaLetra = 0; for (int b = 0; b < arrBaguncadas.GetLength(0); b++) //ver em que posição a letra deve estar { //se tiver letra menor ou se a letra está repetida e já existe no array ordenado if (letraParaTestar > arrBaguncadas[b] || arrOrdenadas[b] == letraParaTestar) posicaoDaLetra++; } arrOrdenadas[posicaoDaLetra] = letraParaTestar; } txtLetrasOrdenadas.Text = new string(arrOrdenadas); }
- Marcado como Resposta Marques Junior sexta-feira, 31 de julho de 2015 19:54