Redimensionar un array
C sharp
Publicado el 30 de Diciembre del 2008 por Xavi (548 códigos)
10.142 visualizaciones desde el 30 de Diciembre del 2008
Ejemplo, que muestra como redimensionar un array unidimensional, y un array bidimensional.
// Main.cs created with MonoDevelop
// User: xavi at 20:06 30/12/2008
//
// La Web del programador
// http://www.lawebdelprogramador.com
//
using System;
namespace arrays
{
class MainClass
{
public static void Main(string[] args)
{
/***** Redimensionar un Array unidimensional *****/
//Creamos el array unidimensional
double[] nameArray1=new double[1] {0};
Console.WriteLine("length nameArray1: " + nameArray1.Length);
//Redimensionamos el array
Array.Resize(ref nameArray1,2);
Console.WriteLine("length nameArray1 resized: " + nameArray1.Length);
Console.WriteLine("-------------------");
/***** Redimensionar un Array bidimensional *****/
//Creamos el array bidimensional
double[,] nameArray2=new double[2,2];
Console.WriteLine("length nameArray1: " + nameArray2.Length);
//Colocamos contenido
nameArray2[0,0]=10;
nameArray2[0,1]=20;
nameArray2[1,0]=30;
nameArray2[1,1]=40;
Console.WriteLine("Content nameArray2[0,0]: " + nameArray2[0,0]);
Console.WriteLine("Content nameArray2[0,1]: " + nameArray2[0,1]);
Console.WriteLine("Content nameArray2[1,0]: " + nameArray2[1,0]);
Console.WriteLine("Content nameArray2[1,1]: " + nameArray2[1,1]);
Console.WriteLine("-------------------");
//Tenemos que crear un array temporal para redimensionarlo
double[,] tmpArray=new double[(nameArray2.Length)/2+1,2];
//Copiamos el contenido de nuestro array al temporal
Array.Copy(nameArray2,tmpArray,nameArray2.Length);
Console.WriteLine("length tmpArray: " + tmpArray.Length);
Console.WriteLine("length nameArray2: " + nameArray2.Length);
//Copiamos el array temporal a nuestro array
nameArray2=tmpArray;
//Mostramos el contenido de nuestro nuevo array
Console.WriteLine("length nameArray2 resized: " + nameArray2.Length);
Console.WriteLine("Content nameArray2[0,0]: " + nameArray2[0,0]);
Console.WriteLine("Content nameArray2[0,1]: " + nameArray2[0,1]);
Console.WriteLine("Content nameArray2[1,0]: " + nameArray2[1,0]);
Console.WriteLine("Content nameArray2[1,1]: " + nameArray2[1,1]);
Console.WriteLine("Content nameArray2[2,0]: " + nameArray2[2,0]);
Console.WriteLine("Content nameArray2[2,1]: " + nameArray2[2,1]);
Console.WriteLine("-------------------");
//Valor a redimensionarlo nuevamente utilizando la funcion redimArrayBidi
redimArrayBidi(ref nameArray2,4,2);
Console.WriteLine("length nameArray2 resized: " + nameArray2.Length);
Console.WriteLine("Content nameArray2[0,0]: " + nameArray2[0,0]);
Console.WriteLine("Content nameArray2[0,1]: " + nameArray2[0,1]);
Console.WriteLine("Content nameArray2[1,0]: " + nameArray2[1,0]);
Console.WriteLine("Content nameArray2[1,1]: " + nameArray2[1,1]);
Console.WriteLine("Content nameArray2[2,0]: " + nameArray2[2,0]);
Console.WriteLine("Content nameArray2[2,1]: " + nameArray2[2,1]);
Console.WriteLine("Content nameArray2[3,0]: " + nameArray2[2,0]);
Console.WriteLine("Content nameArray2[3,1]: " + nameArray2[2,1]);
Console.WriteLine("-------------------");
}
// Funcion para redimensionar un array. Pasamos el valor del origen por referencia
public static void redimArrayBidi(ref double[,] originArray,int cols, int rows)
{
//Tenemos que crear un array temporal para redimensionarlo
double[,] tmpArray=new double[cols,rows];
//Copiamos el contenido de nuestro array al temporal
Array.Copy(originArray,tmpArray,originArray.Length);
Console.WriteLine("length tmpArray: " + tmpArray.Length);
Console.WriteLine("length origin: " + originArray.Length);
//Copiamos el array temporal a nuestro array
originArray=tmpArray;
//return tmpArray;
}
}
}
Comentarios sobre la versión: Versión 1 (0)
No hay comentarios