我有一个场景,其中我有一个包含对象的列表,对象中有一个datetime字段。我正在尝试找出是否有一种方法可以使用LINQ按连续日期对列表进行分组,并返回具有连续日期范围的子列表。
public virtual IList<LineItem> LineItems { get; set; }
...
public class LineItem
{
public virtual string Status { get; set; }
public virtual DateTime TransDate { get; set; }
...
}
所以,如果我有6个
LineItem
,所有的Status = P
,那么TransDate = { 8/1/2011 , 8/2/2011 , 8/3/2011 , 8/5/2011 , 8/6/2011 , 8/9/2011 }
分别返回如下列表:
{ (P, 8/1/2011-8/3/2011) , (P,8/5/2011-8/6/2011) , (P,8/9/2011) }
有什么想法吗?我可以通过手动迭代列表并检查TransDate是否连续来完成此操作,但我正在寻找更优雅(最好是使用LINQ)的方法。谢谢!