我有一个用户列表和他们的注册日期。现在我想按用户的注册日期以 5 分钟为间隔对用户进行分组,如下所示:
Group 1
15:01
15:03
15:04
Group 2
15:06
15:06
Group 3
15:17
Group 4
15:59
我的问题是:为什么这个解决方案给了我正确的答案:
var users = GetUsers();
var interval = 5;
var registerInvervals = users.GroupBy(x => new
{
Month = x.Registered.Month,
Day = x.Registered.Day,
Hour = x.Registered.Hour,
MinuteFrom = (x.Registered.Minute/interval)*interval,
MinuteTo = (((x.Registered.Minute / interval) * interval) + 5)%61
})
.ToList();
但这不是:
var users = GetUsers();
var interval = 5;
var registerInvervals = users.GroupBy(x => new GroupCriteria()
{
Month = x.Registered.Month,
Day = x.Registered.Day,
Hour = x.Registered.Hour,
MinuteFrom = (x.Registered.Minute/interval)*interval,
MinuteTo = (((x.Registered.Minute / interval) * interval) + 5)%61
})
.ToList();
class GroupCriteria
{
public int Month { get; set; }
public int Day { get; set; }
public int Hour { get; set; }
public int MinuteFrom { get; set; }
public int MinuteTo { get; set; }
}
第二种解决方案返回 7 个组,每个组有 1 个用户。
MMTTMM
明月笑刀无情
相关分类