Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Linq Distinct() by name for populate a dropdown list with name and value

I'm trying to populate a Drop down list with pharmaceutical companies, like Bayer, Medley etc. And, I'm getting theses names from DB and theses names are repeated in DB, but with different id's.

I'm trying to use Linq Distinct(), but I don't want to use the equality comparer. Is there another way?

My drop down list must be filled with the id and the name of the company.

I'm trying something like:

var x = _partnerService
           .SelectPartners()
           .Select(c => new {codPartner = c.codPartner, name = c.name})
           .Distinct();

This is showing repeated companies in ddl.

thanks!

like image 284
André Miranda Avatar asked May 26 '09 19:05

André Miranda


2 Answers

The following expression will select only distinct companies and return the first occurence with its id.

partnerService.SelectPartners().GroupBy(p => p.Name).Select(g => g.First());
like image 82
Daniel Brückner Avatar answered Oct 15 '22 17:10

Daniel Brückner


var distinctCompanies = Companies
  .GroupBy(c => c.CompanyName)
  .Select(g => g.First());
like image 16
Amy B Avatar answered Oct 15 '22 17:10

Amy B