1

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
  • 36,732
  • 85
  • 259
  • 481

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
  • 180,369
  • 20
  • 160
  • 215
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,954
  • 1
  • 12
  • 28