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();

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

解决方法

您可以使用 .SelectMany()来展平结果:
RequestDictionary
    .SelectMany(s 
        => s.Value.SelectMany(z => s.Value.Select(x => x.Item2.SearchCode))
    .ToArray();

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...