我有一個日期串列:
2021/09/01
2021/09/02
2021/09/03
2021/09/04
2021/09/05
2021/09/06
2021/09/07
2021/09/08
2021/09/09
......
2021/09/29
如何以 7 天為單位對日期范圍進行分組?:
2021/09/01
2021/09/02
2021/09/03
2021/09/04
2021/09/05
2021/09/06
2021/09/07
2021/09/08
2021/09/09
2021/09/10
2021/09/11
2021/09/12
2021/09/13
2021/09/14
....
uj5u.com熱心網友回復:
您可以使用 LINQ 的GroupBy,將索引除以 7:
List<List<DateTime>> weekGroups = dates
.Select((date, index) => (date, index))
.GroupBy(x => x.index / 7, x => x.date)
.Select(g => g.ToList())
.ToList();
uj5u.com熱心網友回復:
如果您的資料可能包含一個日期的間隔或多個條目,您可以計算與最小日期的差異并將其用于分組,例如:
if (dates.Any()) // Min() will fail if there are no dates
{
var minDate = dates.Min(x => x);
var interval = 7d;
var groups = from x in dates
group x by x.Subtract(minDate).TotalDays / interval
into g
select g;
}
上述樣本可作為指導;您可能需要根據您的資料結構和要求對其進行調整。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/331249.html
