Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何对列表进行分组<;K>;通过列表<;T>;,取决于表达式的结果<;T、 K>;?_C#_Linq_Group By - Fatal编程技术网

C# 如何对列表进行分组<;K>;通过列表<;T>;,取决于表达式的结果<;T、 K>;?

C# 如何对列表进行分组<;K>;通过列表<;T>;,取决于表达式的结果<;T、 K>;?,c#,linq,group-by,C#,Linq,Group By,我很难表达这个问题,所以请容忍我,并请随时提出后续问题 我有一个Period对象,其他地方有一个函数,如下所示: public static bool PeriodApplies(Period period, DateTime date) 此函数获取一个对象,该对象描述一个重复周期(如计划班次或移动电话费率计划周期,即“白天”、“星期一从下午5:00到凌晨12:00”)和一个日期。如果日期在期间内,则返回true 现在,我有一个列表和一个列表,带有日期属性。如何输出词典使用以下方法如何: 如何

我很难表达这个问题,所以请容忍我,并请随时提出后续问题

我有一个Period对象,其他地方有一个函数,如下所示:

public static bool PeriodApplies(Period period, DateTime date)
此函数获取一个对象,该对象描述一个重复周期(如计划班次或移动电话费率计划周期,即“白天”、“星期一从下午5:00到凌晨12:00”)和一个日期。如果日期在期间内,则返回true

现在,我有一个
列表
和一个
列表
,带有
日期
属性。如何输出
词典使用以下方法如何:

如何使用:

像这样:

IDictionary<Period, IEnumerable<Interval>> dictionary = 
     periods.ToDictionary(p => p, 
                          p => intervals.Where(i => PeriodApplies(p, i.Date)));
IDictionary字典=
期间。ToDictionary(p=>p,
p=>interval,其中(i=>period(p,i.Date));
第一部分给出键,第二部分确定值。

像这样:

IDictionary<Period, IEnumerable<Interval>> dictionary = 
     periods.ToDictionary(p => p, 
                          p => intervals.Where(i => PeriodApplies(p, i.Date)));
IDictionary字典=
期间。ToDictionary(p=>p,
p=>interval,其中(i=>period(p,i.Date));

第一部分给出键,第二部分确定值。

我喜欢这个答案,因为它允许我创建一个带有参数谓词的泛型函数!我喜欢这个答案,因为它允许我创建一个带有参数谓词的泛型函数!