我很难表达这个问题,请多多包涵,请随时提出后续问题。

我有一个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列表的其他数据结构),当通过IntervalDate时,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/

10-12 12:37