我有一个类型为Material
的数组,我希望将其拆分为更小的组。 Material
是由Type
,Description
和Value
组成的对象。我想显示由Description
组合在一起的材料“Value
和Type
,以便我可以将它们显示为:
For Each matTypeGroup As Material() In matTypeGroups
DisplayTypeName(matTypeGroup(0).Type)
For Each mat As Material In matTypeGroup
DisplayMaterialInfo(mat.Description, mat.Value)
Next
Next
最终输出看起来像这样:
- Type1
Description1: Value1
Description2: Value2
Description3: Value3
- Type2
Description4: Value4
- Type3
Description5: Value5
Description6: Value6
如何将Material
数组拆分为按Material
分组的Type
数组数组?
答案 0 :(得分:3)
您可以使用GroupBy:
Dim matTypeGroups = materials.GroupBy(Function(m) m.Type)
您只需编辑代码即可使用IGrouping而不是数组。我假设Type在这里是一个字符串。
For Each matTypeGroup As IGrouping(Of String, Material) In matTypeGroups
DisplayTypeName(matTypeGroup.Key)
For Each mat As Material In matTypeGroup
DisplayMaterialInfo(mat.Description, mat.Value)
Next
Next