我想从基于公司ID的列表中删除重复的对象。从VB.Net列表中删除重复的对象
如何通过列表集成和删除根据companyID的对象。
While reader.Read()
companys.Add(New CompanySearch)
companys(companys.Count - 1).StartDate = reader("StartDate").ToString & " (" & count & ")"
companys(companys.Count - 1).CompanyID = reader("company").ToString
companys(companys.Count - 1).Origin = reader("Origin").ToString
companys(companys.Count - 1).OriginName = reader("OriginName").ToString
companys(companys.Count - 1).Status = reader("status").ToString
companys(companys.Count - 1).StatusName = reader("statusname").ToString
companys(companys.Count - 1).Status = reader("status").ToString
companys(companys.Count - 1).FullLegalBusinessName = reader("fullLegalBusinessName")
companys(companys.Count - 1).AmountRequestedText = reader("amountRequestedText")
companys(companys.Count - 1).HowSoonNeededText = reader("howSoonNeededText")
companys(companys.Count - 1).QueueID = reader("QueueID")
companys(companys.Count - 1).Company = reader("Company")
End While
For counter As Integer = 0 To companys.Count
counter += 1
If i <> CInt(companys(companys.Count - 1).CompanyID) Then
i = CInt(companys(companys.Count - 1).CompanyID)
Else
companys.Remove()
End If
Next
为什么不阻止其加入,而不是删除它的? –
因为它来自的存储的过程和尽可能SQL而言行它返回是不同 –
检查[这太问题](http://stackoverflow.com/questions/2322200/remove-duplicates-from-a-listof -t-在-VB网)。 Globaly,尝试设置一个函数/类,您可以将其作为参数传递给'.Distinct',以便您可以调用它并获取删除重复项的结果,例如'companys = companys.Distinct(New yourComparasionFunction).ToList'另一个选项(较慢)是迭代两个循环 - 第一个通过你的列表,第二个在第一个内部完成,然后你比较两个companyId的 –