Remove objects with a duplicate property from List
MoreLINQ DistinctBy()
will do the job, it allows using object proeprty for the distinctness. Unfortunatly built in LINQ Distinct()
not flexible enoght.
var uniqueItems = allItems.DistinctBy(i => i.Id);
DistinctBy()
Returns all distinct elements of the given source, where "distinctness" is determined via a projection and the default eqaulity comparer for the projected type.
- Download MoreLINQ
- DistinctBy() sources
PS: Credits to Jon Skeet for sharing this library with community
If you want to avoid using a third-party library, you could do something like:
var bar = fooArray.GroupBy(x => x.Id).Select(x => x.First()).ToList();
That will group the array by the Id property, then select the first entry in the grouping.