我想從基於公司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的 –