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

André Miranda picture André Miranda · May 26, 2009 · Viewed 55.2k times · Source

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!

Answer

Daniel Brückner picture Daniel Brückner · May 26, 2009

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());