关于c#:Linq嵌套列表表达式

Linq nested list expression

我需要你的帮助来表达一下Linq:

我用列表嵌套了对象,这是主对象层次结构的样子(每个破折号都是子类的一个属性):

1
2
3
4
5
6
7
Folder
-name
-List<Subfolder> Subfolders
                 -name
                 -List<Document> Documents
                                 -name
                                 -key

有了这个对象层次结构,我就有了一个文档名,我想搜索它并返回它的父文件夹(子文件夹)

例子:

1
2
3
4
5
6
7
Folder
    -name: Customer
    -List<Subfolder> Subfolders
                     -name: Personal
                     -List<Document> Documents
                                     -name: Resume
                                     -key : 1

如果我说:"resume",linq表达式应该返回我:子文件夹"personal"(对象)。

请帮帮我,因为我有两个嵌套列表,有一个很容易。

事先谢谢。


1
2
3
folders
    .SelectMany(s => s.SubFolders)
    .FirstOrDefault(s => s.Documents.Any(d => d.Name =="Resume"));

我是从臀部开始射击,但我认为这应该管用……


这很容易:

1
2
3
4
5
6
7
var folders = ...;

var subfolders =
    from folder in folders
    from subfolder in folder.Subfolders
    where subfolder.Documents.Any(d => d.Name =="Resume")
    select subfolder;

想想林克!