【发布时间】:2011-10-26 06:03:35
【问题描述】:
出于教育目的,我尝试将“Linq in action”一书中的以下 Linq 表达式转换为 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# on rails”这本书以及“Funny Stories”和“Bonjour mon Amour”这本书被分组,因为它们具有相同的出版商和主题。 我的匿名密钥包含两个简单字符串的新对象。
我已经尝试在 SO 中搜索,但 other (or) 的答案并不能解决我的问题。在这种情况下,即使是像 telerik 或 carlosag 这样的代码翻译器也无济于事。
【问题讨论】:
标签: linq c#-to-vb.net