TimeSpan 函数使用 C#

问题描述

如何用 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))

它为您提供了代码中的所有时间跨度,但它稍微扩展了代码。