在我向C#here提出类似问题之前。我现在正试图将其复制到VB中。
我的代码中有一个类,如下所示:
Public Class TariffVariations
Public Property TariffCode() As String
Get
Return m_TariffCode
End Get
Set(value As String)
m_TariffCode = value
End Set
End Property
Private m_TariffCode As String
Public Property Eye() As String
Get
Return m_Eye
End Get
Set(value As String)
m_Eye = value
End Set
End Property
Private m_Eye As String
Public Property Count() As Integer
Get
Return m_Count
End Get
Set(value As Integer)
m_Count = value
End Set
End Property
Private m_Count As Integer
End Class
我正在循环转发器以构建此变体列表。我的列表中有8个对象,每个眼睛有4个变体。 我现在正试图遍历该列表并计算选择项目的次数,因此计算。
我查看了here和here有关如何处理群组的示例。我还将我的代码从C#从我之前的问题转换为VB。
我最终得到了适合我代码的这两个样本。请原谅命名约定:
Dim lstNew = lstObjs.GroupBy(Function(c) c.TariffCode).Select(Function(c) New TariffVariations() With {.Eye = c.Key})
Dim newCarList = lstObjs.GroupBy(Function(c) New With { _
c.Eye, _
c.TariffCode _
}).[Select](Function(carGroup) New TariffVariations() With { _
.Eye = carGroup.Key.Eye, _
.TariffCode = carGroup.Key.TariffCode, _
.Count = carGroup.Sum(Function(c) c.Count) _
}).ToList()
现在在这两个列表中,而不是它们只折叠到2个对象,每个对象用于左眼和右眼,具有相同的代码和计数,而是将8保留在正在分组的列表中。
如何正确排序这些列表?我在这里做错了什么?
答案 0 :(得分:0)
获取我的列表后,我使用以下内容来获取我想要的值:
Dim lst = From item In lstObjs
Order By item.TariffCode, item.Eye
Group By item.TariffCode, item.Eye
Into grp = Group, Sum(item.Count)
Order By TariffCode, Eye
Select Sum
Dim canCont As Boolean = True
For Each num As Integer In lst
If num > 1 Then
canCont = False
End If
Next
哪个适合我?