我想从一个子词典中得到一个子元素列表
我有这个:
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