我正在尝试将Anthyme Caillard的INotifyDataErrorInfo
实现转换为VB.NET。一切都进行得很顺利,直到我到达Validate
方法,其中包含以下LINQ查询,其中q
的类型为IEnumerable<IGrouping<string, ValidationResult>>
:
var q = from r in validationResults
from m in r.MemberNames
group r by m into g
select g;
我尝试了以下翻译:
Dim q = From r In valResults
From m In r.MemberNames
Group r By r.MemberNames Into Group
Select Group
甚至可以使用lambda表达式版本(假设我正确使用了John Skeet的语法):
Dim q = valResults.GroupBy(Function(r) r, Function(r) r.MemberNames)
但在这两种情况下,
q
的类型均为 IEnumerable(Of IEnumerable(Of ValidationResult))
。我查看了VB 和 IGrouping 用于 LINQ 查询以及VB.Net - Linq Group By 返回 IEnumerable(Of Anonymous Type),但我认为它们并不适用于我的情况,因为我将直接使用该组,而不是一个特定的类。
为什么这些实现没有返回相同的结果,我该怎么做才能使
q
成为所需的 IEnumerable(Of IGrouping(Of String, ValidationResult))
?