Я пытаюсь удалить дублированный объект из списка на основе идентификатора компании.Удалить дубликаты объектов из списка в VB.Net
Как интегрировать в список и удалить объект на основе идентификатора компании.
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, строки, которые он возвращает, различаются. –
Проверьте [этот вопрос SO] (http://stackoverflow.com/questions/2322200/remove-duplicates-from-a-listof -t-в-VB-нетто). Globaly, попытайтесь установить функцию/класс, которую вы можете передать как параметр '.Distinct', чтобы вы могли вызвать его и удалить дубликаты, ваш результат может быть похож на' companys = companys.Distinct (New yourComparasionFunction) .ToList' Еще один вариант (медленнее) состоит в повторении с двумя циклами - первый проходит через ваш список, а второй делает то же самое внутри 1-го, а затем вы сравниваете –