使用LINQ组合列表列表中的属性?

cos*_*ost 6 c# linq

我有一个看起来像这样的词典: Dictionary<Search_Requests, List<Tuple<Search_Subjects, SearchData>>>

SearchData课堂上,有一个叫做的属性SearchCode.我想要做的是获取此词典中出现的每个搜索代码的数组.我可以用几个循环来做这个,但我真的更喜欢使用LINQ.不幸的是,我无法理解如何做到这一点.我试过了

RequestDictionary.Select(s => s.Value.Select(z => s.Value.Select(x => x.Item2.SearchCode).ToArray()).ToArray()).ToArray();
Run Code Online (Sandbox Code Playgroud)

但那只是给了我一个string[][][],这与我想要的并不相符.我可以向正确的方向努力吗?

Bar*_*zKP 6

您可以.SelectMany()用来展平结果:

RequestDictionary
    .SelectMany(s 
        => s.Value.SelectMany(z => s.Value.Select(x => x.Item2.SearchCode))
    .ToArray();
Run Code Online (Sandbox Code Playgroud)