需要创建部分填充的深度嵌套字典
IDictionary<string, IDictionary<string, IDictionary<DateTime, double>>> AllparamsSmooth
我有
List<Facility> facilities
和
List<string> names
需要创建AllparamsSmooth,其中只有字符串被填充^(这只是名称(:
像这样:
foreach (var facility in facilities)
{
AllparamsSmooth.Add(facility.Name, new Dictionary<string, IDictionary<DateTime, double>>());
foreach (var name in names)
{
AllparamsSmooth[facility.Name].Add(name, new Dictionary<DateTime, double>());
}
}
问题 - 如何使用 LINQ 执行此操作
相当丑陋且不可读:
AllparamsSmooth = facilities.ToDictionary(
x => x.Name,
x => (IDictionary<string, IDictionary<DateTime, double>>)names.ToDictionary(
y => y,
y => (IDictionary<DateTime, double>)new Dictionary<DateTime, double>()));
请注意各种必要的转换,否则你会得到
IDictionary<string, Dictionary<string, Dictionary<DateTime, double>>>