我正在尝试获取不在整数区间内的小时列表。例如,如果区间是10到23,它应该返回[1,2,3,4,5,6,7,8,9,24]。
我编写了这个方法。
我已经编写了以下方法:
List<int> GetTimeList(List<Mail> Mails, int TransferSpeed)
{
List<int> Hours = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 };
foreach (Mail mail in Mails)
{
Hours.RemoveAll(x => x >= mail.DateAndTime.Hour && x <= GetRoundedTransferTime(TransferSpeed, mail.Size));
}
return Hours;
}
现在的方法虽然可行,但我正在寻求更加优雅和有效的方式。
如果您能帮助我解决这个问题,我将非常感激。
Enumerable.Range(1, 24)
。从技术上讲,IEnuermable.Except 可能不会返回相同的顺序(对于 Linq2Objects,作为实现细节它会)。 - user2864740