下面是我列出組連續的元素,選擇第一和最後一個元素
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")
我想組連續的日期並選擇開始和該組
輸出的結束日期:
"2013-12-02"-"2013-12-05"
"2013-12-08"-"2013-12-08"
"2013-12-12"-"2013-12-14"
我的嘗試:
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)
});
我怎樣才能做到這一點?
您可以從我的(http://codereview.stackexchange.com/questions/6512/grouping-by-sequence-in-linq)函數或其中一個答案開始。 – MPelletier
'List ls_date = new List (); ls_date.Add(「2013-12-02」);'不會編譯:字符串不是'DateTime's,除非它們被解析爲。 –
對不起。我正在轉換並添加到列表中 – balaji