none
Problema com Join RRS feed

  • Pergunta

  • Boas, estou a tentar separar items por virgula, mas sem sucesso.

    Tenho o seguinte código:

    List<string> acessorio = new List<string>(); acessorio.Add(txt_acessorios.Text); acessorios += string.Join("/", acessorio.ToArray());

    O resultado são os items todos seguidos ficando assim: RatoTecladoMonitor

    O que estou a fazer mal?

    Cumprimentos,

    D3POD

    segunda-feira, 3 de agosto de 2015 19:14

Respostas

  • Certo. Então minha sugestão:

    Usando os controles:

    • Textbox para entrada de dados.
    • ListBox para armazenar os dados incluídos.
    • Button para incluir o valor do TextBox na ListBox
    • Button para Transformar o conteúdo da ListBox em String separando por "/".
    • Uma Label para mostrar a string montada pelo ListBox.

    No Click do botão para incluir os dados no ListBox, fiz assim:

    if(!string.IsNullOrEmpty(textBox1.Text))
         listBox1.Items.Add(textBox1.Text);
    textBox1.Text = string.Empty;  

    No Click do botão para transformar o conteúdo do ListBox em string, separando por "/" fiz assim:

    if(listBox1.Items.Count > 0)
    {
         string[] array = new string[listBox1.Items.Count];
         listBox1.Items.CopyTo(array, 0);
         label1.Text = string.Join("/", array);
    }  

    Creio que com isto você consiga desenvolver sua funcionalidade.


    Fabio Rosa.

    • Marcado como Resposta D3POD terça-feira, 4 de agosto de 2015 20:03
    terça-feira, 4 de agosto de 2015 11:02

Todas as Respostas

  • Olá,

    Acho que não está entendendo a "/" por ser caractere de escape... tente com "//".


    Fabio Rosa.

    segunda-feira, 3 de agosto de 2015 19:34
  • Mesmo assim não resolveu...
    segunda-feira, 3 de agosto de 2015 20:08
  • Mas deve funcionar. Fiz o teste aqui e fez certinho... como você está alimentando o txt_acessórios?

    Se você estiver informando "RatoTecladoMonitor" tudo junto no txt_acessórios não vai funcionar mesmo... teria que ter vários TextBox, cada um com uma informação e adicionando na lista para dar certo...

    Apenas para você ver o exemplo que testei, abaixo segue o código:

                List<string> teste = new List<string>();
                teste.Add("Primeiro");
                teste.Add("Segundo");
                teste.Add("Terceiro");
                teste.Add("Quarto");
    
                Console.WriteLine("{0}", string.Join("/", teste.ToArray()));
                Console.ReadKey();
    Este teste fiz em um projeto do tipo Console Application.


    Fabio Rosa.


    • Editado Fabio Rosa segunda-feira, 3 de agosto de 2015 20:46 Incluído código de exemplo.
    segunda-feira, 3 de agosto de 2015 20:24
  • Eu tenho um botão que corre o código cada vez que é clicado...

    Escrevo Rato... primo o botão, depois Teclado e volto a premir o botão... e por ai...

    Tenho uma listbox onde vejo os items adicionados...

    list_acessorios.Items.Add(txt_acessorios.Text);
                    txt_acessorios.Text = "";

    E fazer isso com os items da listbox fica mais fácil?

    segunda-feira, 3 de agosto de 2015 20:48
  • Se o seu objetivo é apenas adiciona na lista, acho que é mais fácil assim mesmo.


    Fabio Rosa.

    segunda-feira, 3 de agosto de 2015 20:53
  • O meu objectivo não é apenas adicionar na lista... eu tenho que converter a lista ou adicionar numa string diretamente porque eu tenho que gravar os items numa base de dados separando os items por / ou ,
    segunda-feira, 3 de agosto de 2015 21:02
  • Certo. Então minha sugestão:

    Usando os controles:

    • Textbox para entrada de dados.
    • ListBox para armazenar os dados incluídos.
    • Button para incluir o valor do TextBox na ListBox
    • Button para Transformar o conteúdo da ListBox em String separando por "/".
    • Uma Label para mostrar a string montada pelo ListBox.

    No Click do botão para incluir os dados no ListBox, fiz assim:

    if(!string.IsNullOrEmpty(textBox1.Text))
         listBox1.Items.Add(textBox1.Text);
    textBox1.Text = string.Empty;  

    No Click do botão para transformar o conteúdo do ListBox em string, separando por "/" fiz assim:

    if(listBox1.Items.Count > 0)
    {
         string[] array = new string[listBox1.Items.Count];
         listBox1.Items.CopyTo(array, 0);
         label1.Text = string.Join("/", array);
    }  

    Creio que com isto você consiga desenvolver sua funcionalidade.


    Fabio Rosa.

    • Marcado como Resposta D3POD terça-feira, 4 de agosto de 2015 20:03
    terça-feira, 4 de agosto de 2015 11:02
  • Obrigado, resolveu o meu problema.

    Cumprimentos,

    D3POD

    terça-feira, 4 de agosto de 2015 20:03