Я собираюсь немного не по теме здесь, но я попал в эту тему, потому что я искал способ создать словарь словаря в Linq, и разговор здесь привел меня к ответу ...
Вы можете использовать linq для создания многоуровневых словарей, что полезно для сценариев, в которых у вас есть более 1 ключа или измерения, по которым вы хотите выполнить поиск. Хитрость заключается в том, чтобы создать группировку и затем преобразовать ее в словарь следующим образом:
Dim qry = (From acs In ActualSales _
Group By acs.ProductID Into Group _
Select ProductID, Months = Group.ToDictionary(Function(c) c.Period) _
).ToDictionary(Function(c) c.ProductID)
Полученный запрос можно использовать следующим образом:
If qry.ContainsKey(_ProductID) Then
With qry(_ProductID)
If .Months.ContainsKey(_Period) Then
...
End If
End With
End If
Надеюсь, что это полезно для всех, кому нужен такой запрос.