Usuário com melhor resposta
É possível fazer um array de arrays?

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?
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".
- Editado Juliano Nunes Silva Oliveira quinta-feira, 8 de dezembro de 2016 14:21
- Marcado como Resposta lnx8789 quinta-feira, 8 de dezembro de 2016 18:19
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".
- Editado Juliano Nunes Silva Oliveira quinta-feira, 8 de dezembro de 2016 14:21
- Marcado como Resposta lnx8789 quinta-feira, 8 de dezembro de 2016 18:19
-