Linq嵌套列表表达式

本文关键字:表达式 列表 嵌套 Linq | 更新日期: 2023-09-27 17:57:42

我需要你帮助一个Linq表达式:

我有带列表的嵌套对象,这就是主对象层次结构的样子(每个破折号都是子类的一个矩阵):

Folder
-name
-List<Subfolder> Subfolders
                 -name
                 -List<Document> Documents
                                 -name
                                 -key

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

示例:

Folder
    -name: Customer
    -List<Subfolder> Subfolders
                     -name: Personal
                     -List<Document> Documents
                                     -name: Resume
                                     -key : 1

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

请帮帮我,因为有两个嵌套列表,我遇到了麻烦,有了一个它会很容易。

提前谢谢。

Linq嵌套列表表达式

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

我在这里投篮,但我认为应该奏效。。。。

这很简单:

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

想想林克吧!