0

I have a list of numbers:

List<Int32> numbers = new List<Int32> { 1, 2, 5, 6, 18, 28, 40, 62 };

And the following class:

public class Measure {
  public DateTime Created { get; set; }
  public Int32 Value { get; set; }
}

I need to create a list of Measure where:

  1. Each Measure Value is one of the values listed;
  2. Each Measure Created is a day starting in DateTime.Now and incremented by one day.

So the list of Measure would be something like:

DateTime.Now, 1
DateTime.Now.AddDays(1), 2
DateTime.Now.AddDays(2), 5
...

Is it possible to create this list using Linq?

Miguel Moura
  • 28,129
  • 59
  • 187
  • 356

2 Answers2

1

Let's try Select((value, index) => ...) construction:

 List<Int32> numbers = new List<Int32> { 1, 2, 5, 6, 18, 28, 40, 62 };

 List<Measure> result = numbers
   .Select((value, index) => new Measure() {
      Created = DateTime.Now.AddDays(index),
      Value = value
     })
   .ToList();
Dmitry Bychenko
  • 149,892
  • 16
  • 136
  • 186
0

Yes you can:

List<Int32> numbers = new List<Int32> { 1, 2, 5, 6, 18, 28, 40, 62 };
int dayCounter = 0;
var measureList = numbers.Select(
    x => new Measure
    {
        Value = x,
        Created = DateTime.Now.AddDays(dayCounter++)
    }).ToList();
Mihir Dave
  • 3,869
  • 1
  • 10
  • 26