Question: I'm trying to find missing dates between two DateTime variables for a collection of DateTimes.

For example.

```
Collection
2010-01-01
2010-01-02
2010-01-03
2010-01-05

DateRange
2010-01-01 -> 2010-01-06

```

would give me a `List<DateTime>` of

```
2010-01-04
2010-01-06

```

I can think of a few was of implementing this but nothing clean and simple

Any ideas?

Answer: 
Depending on exactly what you are looking for and the sizes of the sets of data. A simple way would be to load the dates into a collection, then use a simple loop. I'll add a code sample here in a second.

```
DateTime currentDate = new DateTime(2010, 1, 1);
DateTime endDate = new DateTime(2010, 1, 6);
List<DateTime> existingDates = new List<DateTime>; //You fill with values
List<DateTime> missingDates = new List<DateTime>;

while(currentDate <= endDate)
{
    if(existingDates.contains(currentDate))
        missingDates.Add(currentDate);

    //Increment date
    currentDate = currentDate.AddDays(1);
}

```

Using this example you just need to load "existingDates" with the proper values, then the "missingDates" list will have your results
Lazy evaluated helper method aids in generating the list of dates to compare with. Might want to performance profile this method for large collections.

```
void Main()
{
    var dates = new[] {new DateTime(2000,1,1), new DateTime(2000,1,5)};
    DateHelper.Range(new DateTime(2000,1,1), new DateTime(2000,1,5)).Except(dates).Dump();
}

// Define other methods and classes here
public static class DateHelper {
    public static IEnumerable<DateTime> Range(DateTime start, DateTime end) {
        var days = end.Subtract(start).Days;
        var next = start;
        for(var i = 0; i<days; i++) {
            next = next.AddDays(1);
            yield return next;
        }
    }
}

```