Below is my List
List<DateTime> ls_date =new List<DateTime>()
ls_date.Add("2013-12-02")
ls_date.Add("2013-12-03")
ls_date.Add("2013-12-04")
ls_date.Add("2013-12-05")
ls_date.Add("2013-12-08")
ls_date.Add("2013-12-12")
ls_date.Add("2013-12-13")
ls_date.Add("2013-12-14")
I want to group continuous date and select start and end date of that group
Output:
"2013-12-02"-"2013-12-05"
"2013-12-08"-"2013-12-08"
"2013-12-12"-"2013-12-14"
My try:
public class sampleWithIntervals
{
public DateTime startDate;
public DateTime endDate;
}
var data = ls_date
.Select((s, i) => new { sample = s, index = i })
.GroupBy(si => new { date = si.sample.Date.AddDays(-si.index) })
.Select(g => new sampleWithIntervals()
{
startDate = g.Min(s => s.sample.Date),
endDate = g.Max(s => s.sample.Date)
});
How can i achieve this?