В образовательных целях я пытался преобразовать следующее выражение Linq из книги "Linq in action" в VB.net
Оригинал C #
var list =
from book in SampleData.Books
group book by new { book.Publisher.Name, book.Subject }
into grouping
select new {
Publisher = grouping.Key.Publisher,
Subject = grouping.Key.Subject,
Book = grouping
};
Моя попытка:
Dim list = _books.GroupBy(Function(book) New With {.Publisher = book.Publisher.Name,
book.Subject}).
Select(Function(grouping) New With {.Publisher = grouping.Key.Publisher,
.Subject = grouping.Key.Subject,
.Books = grouping})
For Each item In list
Console.WriteLine("Publisher:" & item.Publisher & ", Subject:" & item.Subject)
For Each Book In item.Books
Console.WriteLine(" " & Book.Title)
Next
Next
Это приводит к следующему выводу:
Publisher:FunBooks, Subject:Fun
Funny Stories
Publisher:Joe Publishing, Subject:Work
LINQ rules
Publisher:Joe Publishing, Subject:Work
C# on rails
Publisher:Joe Publishing, Subject:Fun
All your base are belong to us
Publisher:FunBooks, Subject:Fun
Bonjour mon Amour
Я ожидал, что книги "Правила LINQ" и "C # на рельсах" сгруппированы так же, как и книги "Веселые истории" и "Bonjour mon Amour ", потому что у них один и тот же издатель и тема.Мой анонимный ключ состоит из нового объекта из двух простых строк.
Я уже пытался искать в SO, но другие ( или ) ответы не решают мою проблему.Даже некоторые переводчики кода, такие как telerik или carlosag , не помогут в этом случае.