【发布时间】:2014-12-30 01:04:46
【问题描述】:
我花了几个小时浏览这里和网络上的档案,以了解如何迭代具有多个 VB.Net 分组的 IGroup。 C# 有很多解决方案,但我真的很难转换到 VB.Net。
这是我要分组的列表
dim merge_list As List(Of MergeData)
这是我按列表中的三个属性分组的代码
Dim groups = merge_list.GroupBy(Function(t) New With {Key t.GUID.Category,
Key t.GUID.FeatureType,
Key t.GUID.AssetType}) _
.Where(Function(grp) grp.Count > 1)
接下来我尝试遍历组,但由于我没有组列表中项目的类型(即暗淡组 As SomeType),我不知道如何使用它们。
这是我循环遍历组的代码
dim group '===note there is no "As SomeType" for group just 'Dim group'===
For Each group In groups
' since group is not typed I cannot figure out how to work with it
next
谁能告诉我如何使用 VB.NET 迭代具有多个组的 IGoup?
【问题讨论】:
-
你不需要在
For Each之前声明group。这种方式编译器应该找出groups中的项目类型是什么。 -
这个问题被否决了。我该如何改进它?
-
是的,我确实需要在使用 VB 时声明组,如果不这样做,我会收到编译器错误:“'group' 未声明。由于其保护级别,它可能无法访问” .我更喜欢不需要这样做的 C#。 VB 令人沮丧。
-
嗯,我刚试过,你没有。检查我的答案。
-
@scott_f - 在 VB 中也不需要指定类型。检查我的答案并附上 Fiddle。