Distinct in Linq based on only one field of the table

Megha Jain picture Megha Jain · Jan 14, 2013 · Viewed 156.2k times · Source

I am trying to use .distinct in Linq to get result based on one field of the table (so do not require a whole duplicated records from table).

I know writing basic query using distinct as followed:

var query = (from r in table1
orderby r.Text
select r).distinct();

but I need results where r.text is not duplicated.

Answer

Daniel Hilgarth picture Daniel Hilgarth · Jan 14, 2013

Try this:

table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());

This will group the table by Text and use the first row from each groups resulting in rows where Text is distinct.