Hello devz,

The Distinct extension from System.Linq is really useful but the DistinctBy a property is missing. So we will create our own DistinctBy extension. No worries, it’s really easy.

What is DistinctBy?

DistinctBy is a very simple extension snippet for C# which allows the developer to remove duplicated objects in a collection based on one of its properties (with a lambda expression as a parameter).

For example: myCollection.DistinctBy(x => x.Color);

Here is the snippet for the DistinctBy extension:

Pretty straightforward, we regroup all the objects in a collection based on the targeted property, then we only keep the first one for each group.

So now you can just call the DistinctBy extension on a collection to get a collection of unique items:

Why is DistinctBy useful?

Let’s use a simple example:

We have a collection of 6 hats with different colors, where 2 of them are blue, 2 greens and 2 reds. We just want a collection of hats with the different possibilities of colors. With the DistinctBy the result will be a collection of 3 items: 1 blue, 1 green and 1 red hat.

Happy coding!  🙂