要进行假期计算,我必须从存储库中加载一年以及多个国家及其州的假期。
为了在需要检查日期是否为假日的逻辑中获得良好的性能,我尝试使用 .ToLookup 扩展名将列表转换为查找,并将字典作为其值。
该字典将 State 作为键,并将该状态的 HashSet 作为值。
我正在尝试使用 Lookup、Dictionary 和 HashSet 创建它,这样我就可以通过使用 Country 和 State 过滤来快速获取假日信息。
以下是代码:
var CountryStateHolidayLookup = holidays.ToLookup(x => x.Country,
x => (
new Dictionary<int, HashSet<Holiday>>()
{ { x.State,
new HashSet<Holiday>()
{ new Holiday(
x.HolidayDate.Date, x.IsWeekend)
}
} }
)
);
在上面代码的输出中,我得到了一个带有国家代码的查找,这个查找的值是一个字典的可枚举,每个假期都作为一个新字典。
而我期待一本将所有项目作为一个 HashSet 的字典
我知道我在这里做错了什么,我必须做些什么改变?