none
declarar un arreglo bidimencional de longitud variable RRS feed

  • Pregunta

  • hola

    quisiera poder declara y usar una variable que sea double arreglo(double variable[][]) pero la unica manera que se es declarandolo con una longitud fija, pero quiesiera q pueda ser variable la longitud, estoy trabajando con c# 

    jueves, 28 de julio de 2011 0:25

Respuestas

  • Podrías probar a declararlo como Lista de dos dimensiones. Te pongo un ejemplo con enteros "int". Sólo tendrías que cambiar int por double.

    	List<List<int>> list = new List<List<int>>();
    	var rand = new Random();
    	for (int i = 0; i < 10; i++)
    	{
    	  //
    	  // Put some integers in the inner lists.
    	  //
    	  List<int> sublist = new List<int>();
    	  int top = rand.Next(1, 15);
    	  for (int v = 0; v < top; v++)
    	  {
    		sublist.Add(rand.Next(1, 5));
    	  }
    	  //
    	  // Add the sublist to the top-level List reference.
    	  //
    	  list.Add(sublist);
    	}


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    • Propuesto como respuesta Nicoloco jueves, 28 de julio de 2011 20:35
    • Marcado como respuesta rodolfo salazar sábado, 30 de julio de 2011 18:48
    jueves, 28 de julio de 2011 1:06
  • hola

    que version de .net usas, sera 2.0 4.0 ?

    lo pregunto proque si usas .net 3.5 o superior, podrias aplicar la clase Tuple

     

    entonces declara una lista generica del tipo

    List<Tuple<double, double>> lista = new List<Tuple<double, double>>();

    para cargarla solo hace

    lista.Add(new Tuple<double, double>(10, 2));

    lista.Add(new Tuple<double, double>(5, 3));

    y asi el resto

    o puedes hacer un for y cargarla como necesites, la cuestione s que es bien dinamico como agregas los items

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Propuesto como respuesta Nicoloco jueves, 28 de julio de 2011 20:35
    • Marcado como respuesta rodolfo salazar sábado, 30 de julio de 2011 18:49
    jueves, 28 de julio de 2011 12:08

Todas las respuestas

  • Podrías probar a declararlo como Lista de dos dimensiones. Te pongo un ejemplo con enteros "int". Sólo tendrías que cambiar int por double.

    	List<List<int>> list = new List<List<int>>();
    	var rand = new Random();
    	for (int i = 0; i < 10; i++)
    	{
    	  //
    	  // Put some integers in the inner lists.
    	  //
    	  List<int> sublist = new List<int>();
    	  int top = rand.Next(1, 15);
    	  for (int v = 0; v < top; v++)
    	  {
    		sublist.Add(rand.Next(1, 5));
    	  }
    	  //
    	  // Add the sublist to the top-level List reference.
    	  //
    	  list.Add(sublist);
    	}


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    • Propuesto como respuesta Nicoloco jueves, 28 de julio de 2011 20:35
    • Marcado como respuesta rodolfo salazar sábado, 30 de julio de 2011 18:48
    jueves, 28 de julio de 2011 1:06
  • jejejejeje santiago me podrias explicar un poco como funciona eso de las listas
    jueves, 28 de julio de 2011 3:50
  • Te adjunto dos enlaces donde puedes comprobar el funcionamiento de las listas. Son muy sencillas y cómodas de usar.

    http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

    http://www.dotnetperls.com/list

     


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    jueves, 28 de julio de 2011 8:06
  • hola

    que version de .net usas, sera 2.0 4.0 ?

    lo pregunto proque si usas .net 3.5 o superior, podrias aplicar la clase Tuple

     

    entonces declara una lista generica del tipo

    List<Tuple<double, double>> lista = new List<Tuple<double, double>>();

    para cargarla solo hace

    lista.Add(new Tuple<double, double>(10, 2));

    lista.Add(new Tuple<double, double>(5, 3));

    y asi el resto

    o puedes hacer un for y cargarla como necesites, la cuestione s que es bien dinamico como agregas los items

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Propuesto como respuesta Nicoloco jueves, 28 de julio de 2011 20:35
    • Marcado como respuesta rodolfo salazar sábado, 30 de julio de 2011 18:49
    jueves, 28 de julio de 2011 12:08
  • Hola Rodolfo, como veo que eres aun novato con list's y generics, te recomiendo que empieces implementado el ejemplo de Santiago.

    Una vez entiendas de que trata aventurate a los Tuples, (recuerda la limitacion de la version del fW)

    Saludos.


    Nicolás Herrera
    Bogotá - Colombia
    BLOG - Leader Group BogotaDotNet
    "Daría todo lo que sé, por la mitad de lo que ignoro." Rene Descartes
    jueves, 28 de julio de 2011 20:37
  • jejejjejej bueno si, la verdad no acabe de entender bien lo de los tuples o quisas es porque no me funcionan en ese caso o sino del todo no lo entendi xD, es que tenia problemas a la hora de querer cierto dato, en alguna posicion que en un arreglo cn un for lo obtenia de inmediato, pienso que se debe a que es una lista
    viernes, 29 de julio de 2011 4:01
  • lo que estoy aciendo en mi programa(estoy trabajando con WPF en C#) es lo siguiente. el programa calcula los promedios en base a las notas que se han obtenido a lo largo del semestre, tengo el form principal donde donde pido el nombre ya sea parciales, examen, tareas, proyecto, etc, cada una de ellas llevara un conjunto de notas y al final llevara el porcentaje que esta aporta  a la nota final. ejemplo, esto es lo primero q pido- parciales(nombre)    4(notas)    40(%)

    enotences esos datos se los envio a otro form donde como le envien el "4" me mostrara 4 veces una ventana donde debo introducir la nota obtenida, esa nota es la que debo almacenar en el vector, arreglo, lista, tuple, (esto es lo que no se como hacer) para despues sumarlo y multiplicarlo y divirlo entre 100 para obtener el porcentaje y este porcentaje enviarlo de vuelta al form principal

    viernes, 29 de julio de 2011 4:09