none
Llenar array con rango fechas RRS feed

Respuestas

  • Puedes obtener la secuencia y rellenar el array mediante el método ToArray(), por ejemplo:

    DateTime rangoInicial = new DateTime(2017, 1, 1);
    DateTime rangoFinal = new DateTime(2017, 1, 10);
    DateTime[] fechas = Enumerable.Range(0, (rangoFinal - rangoInicial).Days + 1)
    			.Select(x => rangoInicial.AddDays(x)).ToArray();

    Imagino que concuerdas conmigo que está tarea es "insignificante" para ocupar LinQ, se resuelve fácilmente iterando por la diferencia de fechas y agregando el valor al array mediante posición.

    • Propuesto como respuesta Jorge TurradoMVP viernes, 1 de diciembre de 2017 14:50
    • Marcado como respuesta Joseba Rguez sábado, 2 de diciembre de 2017 9:05
    viernes, 1 de diciembre de 2017 14:28

Todas las respuestas

  • Puedes obtener la secuencia y rellenar el array mediante el método ToArray(), por ejemplo:

    DateTime rangoInicial = new DateTime(2017, 1, 1);
    DateTime rangoFinal = new DateTime(2017, 1, 10);
    DateTime[] fechas = Enumerable.Range(0, (rangoFinal - rangoInicial).Days + 1)
    			.Select(x => rangoInicial.AddDays(x)).ToArray();

    Imagino que concuerdas conmigo que está tarea es "insignificante" para ocupar LinQ, se resuelve fácilmente iterando por la diferencia de fechas y agregando el valor al array mediante posición.

    • Propuesto como respuesta Jorge TurradoMVP viernes, 1 de diciembre de 2017 14:50
    • Marcado como respuesta Joseba Rguez sábado, 2 de diciembre de 2017 9:05
    viernes, 1 de diciembre de 2017 14:28

  • Imagino que concuerdas conmigo que está tarea es "insignificante" para ocupar LinQ, se resuelve fácilmente iterando por la diferencia de fechas y agregando el valor al array mediante posición.

    ¿Cuando dices "ocupar LinQ" para esta tarea quieres decir que es mejor hacerlo iterando para rellenar el array?
    sábado, 2 de diciembre de 2017 9:08
  • Es posible que el caso puntual que presentas no ofrezca representatividad a la intención del comentario que realicé, pero tomando en cuenta que una de las grandes ventajas de LinQ es la simplicidad y legibilidad del código, gracias a las abstracciones que ofrece, no veo ganancia -en simplicidad o legibilidad- frente a utilizar un bucle bajo la forma (for (int i = 0; i < _array.GetLength(0); i++)), de hecho, la asignación de valores mediante la instrucción for me parece un punto más legible. ¿Rendimiento?, según el caso, a veces LinQ resultará con algo de demora, pero podrían ser diferencias despreciables y tendrás que evaluar el impacto, por ejemplo, si evaluamos el rendimiento para un rango de fechas que va del '01/01/1900' hasta el '31/12/2017', la propuesta inicial (con LinQ) tomará algo de 0.008 segundos frente a 0.001 segundos que toma mediante un bucle for.
    sábado, 2 de diciembre de 2017 16:00