I want to find the date range which falls in input date, following is structure

```
public class Duration
{
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}

var durations = new List<Duration>();
var duration1 = new Duration()
{
    StartDate = new DateTime(2017, 08, 1),
    EndDate = new DateTime(2017, 08, 10)
};
durations.Add(duration1);
var duration2 = new Duration()
{
    StartDate = new DateTime(2017, 08, 5),
    EndDate = new DateTime(2017, 08, 10)
};
durations.Add(duration2);
var duration3 = new Duration()
{
    StartDate = new DateTime(2017, 08, 5),
    EndDate = new DateTime(2017, 08, 6)
};
durations.Add(duration3);

```

Now I want to find duration which is closest to the entered date for list of `<Durations>` with `LINQ` or `for-loop`

My expected result for `currentDate=new DateTime(2017, 08, 7);` is `duration2`