如何使用linq表达式展平嵌套对象

我正在尝试展平这样的嵌套对象:


public class Book

{

    public string Name { get; set; }

    public IList<Chapter> Chapters { get; set; }

}


public class Chapter

{

    public string Name { get; set; }

    public IList<Page> Pages { get; set; }

}



public class Page

{

    public string Name { get; set; }

}

让我举一个例子。这是我的数据


Book: Pro Linq 

   Chapter 1: Hello Linq 

   {

      Page 1, 

      Page 2, 

      Page 3

   },

   Chapter 2: C# Language enhancements

   {

      Page 4

   },

}

我正在寻找的结果是以下平面列表:


"Pro Linq", "Hello Linq", "Page 1"

"Pro Linq", "Hello Linq", "Page 2"

"Pro Linq", "Hello Linq", "Page 3"

"Pro Linq", "C# Language enhancements", "Page 4"

我该怎么做?我可以使用select new来做到这一点,但有人告诉我SelectMany就足够了。


一只名叫tom的猫
浏览 638回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP