Principales respuestas
redimencionar matriz de vb 6 a c#

Pregunta
-
Hola si alguien me pudiera auxiliar en la siguiente:
Estoy pasando codigo de vb a c# y me tope con una redimensión de matriz bidimencional, no se si alguien pudiera orientarme
- Editado Cuauhtémoc Arellano jueves, 30 de noviembre de 2017 5:07
Respuestas
-
hola
Si bien lo aconsejable seria pasar los array a List<>, puede que para una primer migracion deba cambiarse bastante codigo, en ese caso podrias evaluar
quizas con esto puedas redimensionas un array
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Pablo RubioModerator jueves, 30 de noviembre de 2017 15:54
- Marcado como respuesta Cuauhtémoc Arellano jueves, 30 de noviembre de 2017 20:14
Todas las respuestas
-
A diferencia de Visual Basic, en el lenguaje c# el número de dimensiones -y la longitud por cada dimensión- se definen a penas se crea una nueva instancia, posterior a ello los valores no pueden ser modificados. Sin embargo, siendo que intentas reescribir el código a un lenguaje moderno, ¿por qué no aprovechas las ventajas de las listas?, además de permitir el tipado -según los valores que contienes- te permite agregar, modificar o quitar elementos de una manera simple, por ejemplo:
//Crear la clase Producto public class Producto { public int idProducto { get; set; } public int cantidad { get; set; } } //Declarar e instanciar una lista de tipo Producto var productos = new List<Producto>(); //Agregar elementos a la lista o actualizar. var _producto = productos.FirstOrDefault(x => x.idProducto == liProdID); if (_producto != null) _producto.cantidad += liCantidad; else productos.Add(new Producto() { idProducto = liProdID, cantidad = liCantidad });
- Propuesto como respuesta greg_dorian jueves, 30 de noviembre de 2017 15:00
- Votado como útil Pablo RubioModerator jueves, 30 de noviembre de 2017 15:54
- Propuesto como respuesta Pablo RubioModerator jueves, 30 de noviembre de 2017 15:54
-
hola
Si bien lo aconsejable seria pasar los array a List<>, puede que para una primer migracion deba cambiarse bastante codigo, en ese caso podrias evaluar
quizas con esto puedas redimensionas un array
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Pablo RubioModerator jueves, 30 de noviembre de 2017 15:54
- Marcado como respuesta Cuauhtémoc Arellano jueves, 30 de noviembre de 2017 20:14
-
Hola a todos, navegando por la web encontré el método adecuado para así poder re dimensionar mi matriz bidimensional: les comparto el link,
https://stackoverflow.com/questions/6539571/how-to-resize-multidimensional-2d-array-in-c
Por si les funciona, de esta manera sacas la longitud de la dimensión
int di= OCTelcel.GetLength(1);
-
...encontré el método adecuado para así poder re-dimensionar mi matriz bidimensional
Reitero, las dimensiones del array, así como la longitud de cada dimensión, no pueden ser modificadas posterior a haber sido definidas, la solución que mencionas no redimensiona el array (de hecho no se si la instrucción REDIM de Visual Basic lo haga en el sentido estricto del nombre), nota que se crea un nuevo array con la nueva definición de dimensiones y longitud, se transfiere los datos -del array "original" al "nuevo"- y es el "nuevo array" el que retorna el método, lo mismo conseguirás con el método Resize, de la clase Array, que menciona Leandro. Si de verdad buscas algo dinámico, has uso de listas, no veo sentido migrar código manteniendo líneas que podrían ser escritas de mejor manera.
- Propuesto como respuesta Pablo RubioModerator viernes, 1 de diciembre de 2017 16:19
-
>> has uso de listas, no veo sentido migrar código manteniendo líneas que podrían ser escritas de mejor manera.
Tienes razón junto a Leandro, al final ocupe listas, dejo una imagen de como lo solucione, gracias
y al final me tarde menos tiempo que cuando hice el otro de matriz