Using LINQ Distinct to Select Unique Data

Using LINQ Distinct to Select Unique Data

linq

14 Articles

Improve

In this article, let's learn about how to use Distinct and DistinctBy in LINQ in .NET.

Note: If you have not done so already, I recommend you read the article on Using LINQ Skip to Select Specific Data in Collections.

Table of Contents

  1. Introduction
  2. Get Unique items using Distinct
  3. Get Unique items using DistinctBy
  4. Summary

Introduction

We can get unique piece of data from beginning of a collection using LINQ. We're going to use Distinct() and DistinctBy() methods. Let's take a look at each of these methods and how they work.

Get Unique items using Distinct

Sometimes we need to get just a distinct value out of the collection. For instance, we have a bunch of colors in there, we have a few blacks, we have a few violets, we have a few reds,etc., so what we might want to do is say I just want to see the distinct colors, I don't want them all duplicated. So, let's take a look at how we can do that using LINQ and get the unique items.

Code Sample - LINQ Distinct

Demo - LINQ Distinct Clause Demo

Let's try LINQ Distinct

  • We have Colors with duplicate data
  • Click on Get Distinct Products
  • Click on reset to try other combination
Color
Black
Red
Black
Red
Brown
White

Get Unique items using DistinctBy

Instead of just getting colors what if we want the entire product object? We can also extract entire product object conditionally using DistinctBy while the condition evaluates to true. This returns the first product object for each color match and ignores the remaining for same color.

Code Sample - LINQ DistinctBy

Demo - LINQ DistinctBy Clause Demo

Let's try LINQ DistinctBy

  • We have Product class with following properties - Id, Name, Color, Price, Size
  • Enter the expression by which you would like to list.
  • Click on Get Distinct Products
  • Click on reset to try other combination
Id Name Color Price Size
1 HL Road Frame Black 1000 58
2 HL Road Frame Red 1000 58
3 HL Road Frame Black 1000 58
4 HL Road Frame Red 1000 58
5 HL Road Frame Brown 1000 58
6 HL Road Frame White 1000 58

Summary

In this article we learn't how to get unique data within collection using Distinct and DistinctBy. We also learnt how to get unique object by passing an expression. All these can be used with any IEnumerable or IQueryable types.

  • Linq
  • Distinct
  • DistinctBy
  • Unique