none
Manipulação de String RRS feed

  • Pergunta

  • Galera,

      Estou com uma duvida sobre se existe a possibilidade de adicionar mais um elemento em uma string indexada, por exemplo:

    Dim Sb() as string = {"0", "1","2"}
    'Nesse caso o numero de Sb.Length será igual à 2

    Eu queria exatamente saber se à possibilidade de adicionar mais valores de string em tempo de execução, à esse mesmo endereço de string indexada, conservando o que já possuo, parece que eu tenho acesso apenas ao que já foi declarado.

    Será que alguém pode dar uma luz?


    Fabio Abdala



    • Editado Fabio Abdala terça-feira, 28 de abril de 2015 04:23
    terça-feira, 28 de abril de 2015 04:21

Respostas

  • Acho que o que você procura é o ReDim, mas o que pode ser feito também é trabalhar com uma List de String no qual não precisa se preocupar com a quantidade de registros.

    Abaixo segue exemplo de Redim

    Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
            Dim i As Integer
            Dim nomes() As string
    
            ReDim nomes(1)
            nomes(0) = "Nome1"
            nomes(1) = "Nome2"
    
            For i = 0 To nomes.Length - 1
                MsgBox(nomes(i))
            Next
    
            ReDim Preserve nomes(2)
    
            nomes(2) = "Nome3"
    
            For i = 0 To nomes.Length - 1
                MsgBox(nomes(i))
            Next
    End Sub


    Uma imagem vale mais do que mil palavras, mas ocupa 3 mil vezes mais espaço em disco


    • Editado Alexsandro Bertoncini terça-feira, 28 de abril de 2015 11:00 Inserção de código de Exemplo
    • Marcado como Resposta Fabio Abdala terça-feira, 28 de abril de 2015 13:53
    terça-feira, 28 de abril de 2015 10:55

Todas as Respostas

  • Acho que o que você procura é o ReDim, mas o que pode ser feito também é trabalhar com uma List de String no qual não precisa se preocupar com a quantidade de registros.

    Abaixo segue exemplo de Redim

    Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
            Dim i As Integer
            Dim nomes() As string
    
            ReDim nomes(1)
            nomes(0) = "Nome1"
            nomes(1) = "Nome2"
    
            For i = 0 To nomes.Length - 1
                MsgBox(nomes(i))
            Next
    
            ReDim Preserve nomes(2)
    
            nomes(2) = "Nome3"
    
            For i = 0 To nomes.Length - 1
                MsgBox(nomes(i))
            Next
    End Sub


    Uma imagem vale mais do que mil palavras, mas ocupa 3 mil vezes mais espaço em disco


    • Editado Alexsandro Bertoncini terça-feira, 28 de abril de 2015 11:00 Inserção de código de Exemplo
    • Marcado como Resposta Fabio Abdala terça-feira, 28 de abril de 2015 13:53
    terça-feira, 28 de abril de 2015 10:55
  • Olá Alexsandro,

     Obrigado, é isso mesmo, acabei usando o List mesmo, que é mais viável no meu caso, obrigado pela luz!

    Dim Nomes As List(Of String) = New List(Of String)
    
    nomes.add("nome01")
    nomes.add("nome02")
    


    Fabio Abdala

    terça-feira, 28 de abril de 2015 13:56
  • Ok.

    Sim o List é muito mais viavel como falei anteriormente, assim não precisa se preocupar com quantos nomes ira ter, e existe muitos métodos interessantes.

    Precisando de qualquer ajuda estamos aqui para ajudar.


    Uma imagem vale mais do que mil palavras, mas ocupa 3 mil vezes mais espaço em disco

    terça-feira, 28 de abril de 2015 14:23