【问题标题】:Linq nested list expressionLinq 嵌套列表表达式
【发布时间】:2011-05-26 20:14:04
【问题描述】:

请在 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”(对象)。

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

提前致谢。

【问题讨论】:

    标签: c# linq lambda linq-to-objects


    【解决方案1】:
    folders
        .SelectMany(s => s.SubFolders)
        .FirstOrDefault(s => s.Documents.Any(d => d.Name == "Resume"));
    

    我在这里从臀部射击,但我认为应该工作....

    【讨论】:

      【解决方案2】:

      这很简单:

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

      想想 LINQ!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-02
        • 1970-01-01
        • 2020-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-04
        相关资源
        最近更新 更多