想象一下,一个图书馆包含许多有很多页的书。我有 Library 对象,它有一个 HashSet 书籍,有一个页面对象列表。我如何使用 LINQ 计算库中有多少页?

干杯

尼克

最佳答案

假设您描述的类型是这样的:

class Library
{
    public HashSet<Book> Books { get; }
}

class Book
{
    public List<Page> Pages { get; }
}

您可以通过多种方式编写此类查询。
Library lib = ...;

var count1 = lib.Books.Sum(b => b.Pages.Count);
var count2 = lib.Books.Select(b => b.Pages.Count).Sum();
var count3 = lib.Books.Aggregate((sum, book) => sum + book.Pages.Count);
// etc.

当然,您可以通过多种方式来制定这一点。我个人会使用第一种方法编写它。

关于c# - LINQ:多层次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4591983/

10-13 06:24