Estoy construyendo un programa con C#, y he incluido un componente datagridview en él. El Datagridview tiene una cantidad fija de columnas (2), que quiero guardar en dos matrices separadas. Sin embargo, la cantidad de filas cambia. ¿Cómo podría hacer esto?C# datagridview columna en una matriz
Respuesta
Prueba esto:
ArrayList col1Items = new ArrayList();
ArrayList col2Items = new ArrayList();
foreach(DataGridViewRow dr in dgv_Data.Rows)
{
col1Items.Add(dr.Cells[0].Value);
col2Items.Add(dr.Cells[1].Value);
}
Suponiendo un DataGridView llamado DataGridView1 y desea copiar el contenido de las dos primeras columnas en matrices de cadenas, se puede hacer algo como esto:
string[] column0Array = new string[dataGridView1.Rows.Count];
string[] column1Array = new string[dataGridView1.Rows.Count];
int i = 0;
foreach (DataGridViewRow row in dataGridView1.Rows) {
column0Array[i] = row.Cells[0].Value != null ? row.Cells[0].Value.ToString() : string.Empty;
column1Array[i] = row.Cells[1].Value != null ? row.Cells[1].Value.ToString() : string.Empty;
i++;
}
+1, probablemente un poco más eficiente. –
@Abe, por supuesto, si estaba usando .NET 2.0+ recomendaríamos usar la Lista
Verdadero de mi parte, pero tenía la impresión de que, si conoce la longitud de su colección de antemano, generalmente es mejor/más eficiente utilizar una matriz (aunque la ganancia de rendimiento puede no ser notable). –
Usé el ejemplo de Jay y lo cambié para almacenar todas las filas en una única matriz para exportar fácilmente. Al final se puede utilizar simplemente LogArray [0,0] para obtener la cadena de la celda 0, la columna 0.
// create array big enough for all the rows and columns in the grid
string[,] LogArray = new string[dataGridView1.Rows.Count, dataGridView1.Columns.Count];
int i = 0;
int x = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
while (x < dataGridView1.Columns.Count)
{
LogArray[i, x] = row.Cells[x].Value != null ? row.Cells[x].Value.ToString() : string.Empty;
x++;
}
x = 0;
i++; //next row
}
espero que ayudó a alguien con esto, es mi primera vez publicar cualquier código en línea, cada vez . Además, no he codificado en años solo para comenzar de nuevo.
- 1. Multi "columna" DataGridView C#
- 2. DataGridView: ¿cómo congelar una columna?
- 3. Validación en una sola columna DataGridView
- 4. Eliminar columna de DataGridView
- 5. datagridview columna índice
- 6. DataGridView Editar nombres de columna
- 7. Imagen de configuración de columna de imagen Datagridview - C#
- 8. Formato TimeSpan en la columna DataGridView
- 9. C# - DatagridView y ContextMenu
- 10. ¿cómo puedo mostrar la suma de en una columna datagridview?
- 11. cómo cambiar el color de una columna en datagridview?
- 12. ¿Cómo puedo alinear correctamente el texto en una columna DataGridView?
- 13. Mapa de bits en algunas celdas de una columna DataGridView
- 14. Cómo establecer el texto del encabezado de columna para la columna específica en Datagridview C#
- 15. Cambiar el color de fuente de una columna en un control DataGridView (C# winforms)
- 16. matriz 2-dimensional Integer a DataGridView
- 17. filas de orden C# datagridview?
- 18. Definir tipo de columna DataGridView Programmatically
- 19. DataGridView: cómo establecer el ancho de columna?
- 20. Winform DatagridView Clasificación de columna numérica
- 21. C#: Seleccionar fila de DataGridView
- 22. DataGridView Combobox celular establecer la columna
- 23. DataGridView Columna de clasificación con Business Objects
- 24. DataGridView caso mango columna de reordenamiento
- 25. Eliminar una columna para una matriz numpy
- 26. C# Shuffling DataGridView Filas
- 27. Solicitar una matriz por múltiples columna en r
- 28. ¿Cómo almacenar una matriz en una columna en Sqlite3?
- 29. Mostrar columna en DataGridView como entrada de contraseña tipo
- 30. cómo mostrar los valores de enumeración en la columna DataGridView
Después de obtener el error por primera vez al usar el código de Jay, lo probé, y realmente funcionó. Pero, si dices que Jay's es más eficiente, ¡probablemente seguiré experimentando! – Xedfire