none
É possível fazer um array de arrays? RRS feed

  • Pergunta

  • Em um datagridview de 3 colunas preciso varrer todas as n linhas e salvar todas elas em um array (ou em uma coleção qualquer) onde cada índice contém as informações de cada linha do datagrid. Algo do tipo:

    meuArray[linha1, linha2, linha3, linha4,...]

    Onde cada linha é armazenada em um outro array:

    linha1[celulaColuna0, celulaColuna1, celulaColuna2]

    Existe algum meio de fazer isso?

    quinta-feira, 8 de dezembro de 2016 13:44

Respostas

  • Você pode criar uma matriz, mas ela possui tamanho fixo, logo terá que saber a quantidade de linhas e colunas quando for declará-la:

    int linhas = 3;
    int colunas = 3;
    string[,] matrix = new string[linhas, colunas]; 

    Ou pode usar um tipo dinâmico como Tuple do .Net 4+:

    var matriz = new List<Tuple<int, String, String>>();
    		
    matriz.Add(Tuple.Create(1, "Valor do item 1", "Descrição do item1"));
    		
    		
    Console.Write(matriz[0]._AppDomainItem2); //Saída: Valor do item 1

    Ou criar uma classe com a estrutura refletindo as colunas de seu grid.

    Estou adicionando um exemplo de código retirado de um post do StackOverflow pra criar uma matriz com os dados do datagridview:

    object[,] arr2d = new object[dataGridView1.Rows.Count,dataGridView1.Columns.Count];
    
    for (int x = 0; x < arr2d.GetLength(0); x++)
         for (int i = 0; i < arr2d.GetLength(1); i++)
                arr2d[x, i] = dataGridView1.Rows[x].Cells[i].Value;
    Fonte: http://stackoverflow.com/a/25746966/1184708


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    quinta-feira, 8 de dezembro de 2016 14:18

Todas as Respostas

  • Você pode criar uma matriz, mas ela possui tamanho fixo, logo terá que saber a quantidade de linhas e colunas quando for declará-la:

    int linhas = 3;
    int colunas = 3;
    string[,] matrix = new string[linhas, colunas]; 

    Ou pode usar um tipo dinâmico como Tuple do .Net 4+:

    var matriz = new List<Tuple<int, String, String>>();
    		
    matriz.Add(Tuple.Create(1, "Valor do item 1", "Descrição do item1"));
    		
    		
    Console.Write(matriz[0]._AppDomainItem2); //Saída: Valor do item 1

    Ou criar uma classe com a estrutura refletindo as colunas de seu grid.

    Estou adicionando um exemplo de código retirado de um post do StackOverflow pra criar uma matriz com os dados do datagridview:

    object[,] arr2d = new object[dataGridView1.Rows.Count,dataGridView1.Columns.Count];
    
    for (int x = 0; x < arr2d.GetLength(0); x++)
         for (int i = 0; i < arr2d.GetLength(1); i++)
                arr2d[x, i] = dataGridView1.Rows[x].Cells[i].Value;
    Fonte: http://stackoverflow.com/a/25746966/1184708


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    quinta-feira, 8 de dezembro de 2016 14:18
  • Obrigado, @Juliano!!!
    quinta-feira, 8 de dezembro de 2016 18:20