我很难表达这个问题,请多多包涵,请随时提出后续问题。
我有一个Period对象,其他地方的函数看起来像这样:
public static bool PeriodApplies(Period period, DateTime date)
该功能采用一个对象,该对象描述一个重复周期(例如,计划变更或移动电话费率计划周期,即“ daytime”,“ Monday from 5:00 PM to 12:00 AM”)和日期。如果日期在周期内,则返回true。
现在,我有一个
List<Period>
和一个具有List<Interval>
属性的Date
。我如何输出一个Dictionary<Period, <Ienumerable<Interval>>
(或其他键类型为Period
且值为Interval
列表的其他数据结构),当通过Interval
的Date
时,PeriodApplies返回true属性和键Period
?我觉得Linq非常适合解决此类问题,但我不知道该如何完成。有什么帮助吗?
最佳答案
像这样:
IDictionary<Period, IEnumerable<Interval>> dictionary =
periods.ToDictionary(p => p,
p => intervals.Where(i => PeriodApplies(p, i.Date)));
第一部分给出密钥,第二部分确定值。
关于c# - 如何根据表达式<T,K>的结果将List <K>按List <T>分组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3839309/