Uno de los problemas (por decirlo un problema) en C# con los Array o Vectores, es que no se pueden redimensionar mediante un metodo del objeto, es por eso que debemos improvisar y crear nuestro propio metodo que se encargue de realizar esta tarea.
El código lo que hace en realidad es crear un nuevo Array, y volcar los valores del anterior Array al nuevo que tiene un tamaño mayor. Deben tener en cuenta que el código sólo sirve para expandir el tamaño, no para reducirlo.
1 2 3 4 5 6 7 8 | public static System.Array RedimencionarArray(System.Array ArrayViejo, int TamanoNuevo) { int TamanoViejo= ArrayViejo.Length; System.Type tipoElemento= ArrayViejo.GetType().GetElementType(); System.Array ArrayNuevo= System.Array.CreateInstance(tipoElemento,TamanoNuevo); int preserveLength = System.Math.Min(TamanoViejo,TamanoNuevo); if (preserveLength > 0) System.Array.Copy (ArrayViejo,ArrayNuevo,preserveLength); return ArrayNuevo; } |
Con este código podemos ver el nuevo contenido
1 2 3 4 5 6 7 8 | public static void Main () { int[] a = {1,2,3}; a = (int[])RedimencionarArray(a,5); a[3] = 4; a[4] = 5; for (int i=0; i<a.Length; i++) System.Console.WriteLine (a[i]); } |
Articulos Relacionados:









en
en
en
en
me sirvio la funcion, gracias y saludos