Public Function Validate(updatedDetailList As List(Of DetailVO)) As Boolean
Dim matchFound As Boolean = False
For Each firstUpdatedDetail In updatedDetailList
For Each nextUpdatedDetail In updatedDetailList
If firstUpdatedDetail.PROD_ID.Equals(nextUpdatedDetail.PROD_ID) Then
matchFound = True
End If
Next nextUpdatedDetail
Next firstUpdatedDetail
Return matchFound
End Function
我将updatedDetailList
作为一个列表,我想迭代并获取当前和下一个对象值并比较这两个值。如果您在PROD_ID
中找到相同的updatedDetailList
,请将matchFound
作为TRUE
返回。
有没有办法在内部For循环中获取下一个对象。像...
For Each firstUpdatedDetail In **updatedDetailList**
For Each nextUpdatedDetail In **updatedDetailList.Next**
If firstUpdatedDetail.PROD_ID.Equals(nextUpdatedDetail.PROD_ID) Then
matchFound = True
End If
Next nextUpdatedDetail
Next firstUpdatedDetail
答案 0 :(得分:1)
您似乎正在尝试执行不同的验证,因此updatedDetailList
的每个项目都必须是唯一的。
不改变你的方法(即使用For
循环),这里是代码:
For i = 0 to updatedDetailList.Count - 2
If updatedDetailList(i).PROD_ID.Equals(updatedDetailList(i+1).PROD_ID) Then
matchFound = True
Exit For
End If
Next
但有一种更快的方法来执行相同的操作 - 它使用LINQ:
Dim matchFound As Boolean = updatedDetailList.Distinct.Count <> updatedDetailList.Count