问题描述
如何用 TimeSpan 替换 int 1 和 120?
public class StatisticsTask
{
public static double GetMedianTimePerSlide(List<VisitRecord> visits,SlideType slideType)
{
var times = visits
.GroupBy(x => x.UserId)
.SelectMany(x => x.OrderBy(t => t.DateTime).Bigrams().Where(y => y.Item1.SlideType == slideType))
.Select(x => x.Item2.DateTime - x.Item1.DateTime)
.Where(x => x.TotalMinutes >= 1 && x.TotalMinutes <= 120)
.Select(x => x.TotalMinutes)
.ToList();
if (times.Count == 0)
return 0;
return times.Median();
}
}
解决方法
替换这个位
.Where(x => x.TotalMinutes >= 1 && x.TotalMinutes <= 120)
有了这个
.Where(x => x >= TimeSpan.FromMinutes(1) && x <= TimeSpan.FromMinutes(120))
它为您提供了代码中的所有时间跨度,但它稍微扩展了代码。