none
Manipular ArrayList contendo outro ArrayList RRS feed

  • Pergunta

  • Boa tarde olha eu aqui de novo...bom continuo em minha tentativa que até agora tá dando certo de trabalhar com programação mas mais uma vez me deparei com uma situação da qual ainda não resolver...

    Bom recebo de dispositivos vários blocos de dados, esse bloco armazeno num arrayList, porém cada bloco tem mais 64 posições de 8 bits, ficando assim mais ou menos

    o que preciso eh pegar cada dados de um determinado bloco e trabalhar com esse dados mas como recupero esse valor pra outra variável?

    Se não fui clara em minha questão favor entrar em contato que esclareço melhor...

    terça-feira, 3 de junho de 2014 19:08

Respostas

  • Pelo que entendi basta fazer um loop usando for ou foreach, e pegar o conteudo veja que eu uso um tipo var que recebe a variavel item :

    foreach (var item in array1)
                {
                    //aqui seuValor contem o valor
                    // da iteracao do ArrayList
                    var seuValor = item;
                }

     

    • Marcado como Resposta TamiresAp terça-feira, 3 de junho de 2014 19:49
    terça-feira, 3 de junho de 2014 19:18
  • Oi, boa tarde...Verifica se te ajuda...
    private void Form1_Load(object sender, EventArgs e)
            {
    
                for (int i = 0; i < 5; i++)
                {
                    ArrayList item = new ArrayList();
                    item.Add(i *33);
                    item.Add(i*60);
                    item.Add(i * 6);
                    item.Add(i * 40);
                    item.Add(i * 45);
                    
                    Teste(item);
                }
            }
    
            ArrayList dados = new ArrayList();
            private void Teste(ArrayList itemR)
            {
                dados.Add(itemR);
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < dados.Count; i++)
                {
                    if (i == 2)
                    {
                        ArrayList var = (ArrayList)dados[i];
                        int terceiroItemdoSegundoArray = (int)var[3];
                    }
                }
               
            }

    • Marcado como Resposta TamiresAp terça-feira, 3 de junho de 2014 19:48
    terça-feira, 3 de junho de 2014 19:30

Todas as Respostas

  • Pelo que entendi basta fazer um loop usando for ou foreach, e pegar o conteudo veja que eu uso um tipo var que recebe a variavel item :

    foreach (var item in array1)
                {
                    //aqui seuValor contem o valor
                    // da iteracao do ArrayList
                    var seuValor = item;
                }

     

    • Marcado como Resposta TamiresAp terça-feira, 3 de junho de 2014 19:49
    terça-feira, 3 de junho de 2014 19:18
  • Só que assim conseguirei separar apenas a primeira camada, ou seja seuValor vai conter ainda as 64 posições com dados como separar e recuperar cada uma sendo que seuValor não é uma list nem um array e sim um objeto.
    terça-feira, 3 de junho de 2014 19:29
  • Oi, boa tarde...Verifica se te ajuda...
    private void Form1_Load(object sender, EventArgs e)
            {
    
                for (int i = 0; i < 5; i++)
                {
                    ArrayList item = new ArrayList();
                    item.Add(i *33);
                    item.Add(i*60);
                    item.Add(i * 6);
                    item.Add(i * 40);
                    item.Add(i * 45);
                    
                    Teste(item);
                }
            }
    
            ArrayList dados = new ArrayList();
            private void Teste(ArrayList itemR)
            {
                dados.Add(itemR);
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < dados.Count; i++)
                {
                    if (i == 2)
                    {
                        ArrayList var = (ArrayList)dados[i];
                        int terceiroItemdoSegundoArray = (int)var[3];
                    }
                }
               
            }

    • Marcado como Resposta TamiresAp terça-feira, 3 de junho de 2014 19:48
    terça-feira, 3 de junho de 2014 19:30
  • onde eu vou recuperar os itens do dado?o for nunca será usado...
    terça-feira, 3 de junho de 2014 19:36
  • No caso o 'for' você iria percorrer o seu primeiro ArrayList e nele ir pegando cada ArrayList contido dentro dele, assim você consegue percorrer o segundo ArrayList e manipular seus valores...

    terça-feira, 3 de junho de 2014 19:42
  • Imagina uma cômoda com 'N' Gavetas, cada gaveta tem um baralho... você percorre as gavetas uma por uma pega o baralho daquela gaveta e com o baralho em mãos, você percorre as cartas...assim você manipula a carta que quiser... 
    terça-feira, 3 de junho de 2014 19:44
  • Brigada pela ajuda de vocês...Consegui fazer da seguinte forma

    for (int i = 0; i < dados.Count; i++)
                {
                    byte[] teste = new byte[65];
                    teste = (byte[])dados[i];
                }

    bom a situação aqui não era manipular a array e sim trabalhar com dados eles sendo bytes..porém por estar em um ArrayList se torna um objeto dele...mas bastou forçar a conversão...

    VLW


    terça-feira, 3 de junho de 2014 19:48
  • Legal Tamires, tentando ajudar a gente também aprende...bastou forçar o cast!!!
    terça-feira, 3 de junho de 2014 19:55