I have the following linq expression:
AgentsFilter = new BindableCollection<NameValueGuid>((
from firstEntry in FirstEntries
select new NameValueGuid {
Name = firstEntry.Agent,
Value = firstEntry.AgentId
}).Distinct()
);
But because of some reason, the AgentsFilter Collection is full of duplicates. What is wrong with my Distinct()
?
Distinct
will use the Equals
method on NameValueGuid
to find duplicates. IF you do not override Equals
, then it will check references.
You can add an extra step to avoid overriding Equals, by using an anonymous type. Anonymous types automatically override Equals and GetHashCode to compare each member. Doing the distinct on the anonymous type, then projecting that onto your class will solve the problem.
from firstEntry in FirstEntries
select new
{
Name = firstEntry.Agent,
Value = firstEntry.AgentId
}).Distinct().Select(x => new NameValueGuid
{
Name = x.Name,
Value = x.Value
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With