我想从一个子词典中得到一个子元素列表
我有这个:

Dictionary<string, Dictionary<string, List<InstanceLog>>> dic;

我想要这样的东西(从一个大列表的子目录中获取所有instancelog列表):
List<InstanceLog> logList = GetValues(dic);

我试过这种方法,但没用:
List<InstanceLog> logList = GetFetchtedList()
  .Select(x => x.Value.ToList())
  .Cast<InstanceLog>()
  .ToList()

非常感谢你的帮助!

最佳答案

必须将dic展平两次:

Dictionary<string, Dictionary<string, List<InstanceLog>>> dic = ...;

List<InstanceLog> logList = dic
  .SelectMany(pair => pair.Value) // Inner Dictionaries
  .SelectMany(pair => pair.Value) // Inner Lists
  .ToList();                      // Materialized as one big list

07-27 19:50