Jestem zaskoczony. Potrzebuję pomocy. Mam obiekt DTO z duplikatami danych adresowych pacjenta. Muszę uzyskać tylko unikalne adresy.Grupa Linq na wielu polach - VB.NET, Anonim, klucz
Dim PatientAddressDto = New List(Of PatientAddress)
{Populate PatientAddressDto with lots of duplicate data}
PatientAddressDto = (From d In PatientAddressDto
Group d By PatientAddressDtoGrouped = New PatientAddress With {
.Address1 = d.Address1,
.Address2 = d.Address2,
.City = d.City,
.State = d.State,
.Zip = d.Zip
}
Into Group
Select New PatientAddress With {
.Address1 = PatientAddressDtoGrouped.Address1,
.Address2 = PatientAddressDtoGrouped.Address2,
.City = PatientAddressDtoGrouped.City,
.State = PatientAddressDtoGrouped.State,
.Zip = PatientAddressDtoGrouped.Zip
}).ToList()
Próbowałem następujących bez powodzenia:
PatientAddressDto = (From d In PatientAddressDto
Select New PatientAddress With {
.Address1 = d.Address1,
.Address2 = d.Address2,
.City = d.City,
.State = d.State,
.Zip = d.Zip
}).Distinct
a także
PatientAddressDto = PatientAddressDto.GroupBy(Function(p) New PatientAddress With {
.Address1 = p.Address1,
.Address2 = p.Address2,
.City = p.City,
.State = p.State,
.Zip = p.Zip
})
Masz rację w swoim komentarzu, usunę moją odpowiedź, ponieważ nie była pomocna. – daniloquio
Czy próbowałeś wybrać tylko te pola, które chcesz sprawdzić, a następnie użyć .Distinct() na wyniku? –
Mikey, tak, mam. Zmieniłem mój komentarz powyżej, aby uwzględnić kilka alternatyw. – wavedrop