如何使用 LINQ c# 创建部分填充的深度嵌套字典



需要创建部分填充的深度嵌套字典

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>>>

最新更新