需要解释LINQGroupJoin语法吗
我在LINQ方面不是很强,但我正在努力熟悉需要解释LINQGroupJoin语法吗,linq,Linq,我在LINQ方面不是很强,但我正在努力熟悉GroupJoin 在下面的代码中,我试图理解 var result = authors.GroupJoin(books, author => author.AuthorId, book => book.AuthorId, (author, booksByAu
GroupJoin
在下面的代码中,我试图理解
var result = authors.GroupJoin(books,
author => author.AuthorId,
book => book.AuthorId,
(author, booksByAuthor) =>
new { Author = author.Name, Books = booksByAuthor });
从这个连接被重写成代码
var result = from a in authors
join b in books on a.AuthorId equals b.AuthorId into booksByAuthor
select new { Author = a.Name, Books = booksByAuthor };
我被GroupJoin
中的语法弄糊涂了。我知道表格作者和书籍是联系在一起的,但接下来几行的意思是什么
例如,author=>author.AuthorId
,book=>book.AuthorId
的含义是什么?这两条线是不是相当于
on a.AuthorId equals b.AuthorId
?
这句话的意思是什么:
(author, booksByAuthor) => new { Author = author.Name, Books = booksByAuthor }
我可以阅读/理解Join into语句,但对
GroupJoin
有一些困难。谢谢。您可能会感到困惑,因为这两个示例对同一事物使用了不同的别名。因此,让我们来解决这个问题:
var result = from a in authors
join b in books on a.AuthorId equals b.AuthorId into booksByAuthor
select new { Author = a.Name, Books = booksByAuthor };
及
希望有帮助。可能。
var result =
// authors join books
authors.GroupJoin(books,
// on a.AuthorId equals b.AuthorId
a => a.AuthorId, b => b.AuthorId,
// select new { Author = a.Name, Books = booksByAuthor }
(a, booksByAuthor) => new { Author = a.Name, Books = booksByAuthor }
);