LINQ Select Distinct Count in Lambda form

34,838

Solution 1

Use this:

items.Select(i => i.Value).Distinct().Count()

Solution 2

It must be possible, since behind the scenes, LINQ is translated to lambdas and expression trees (at least LINQ to objects)

In your case the ??? part would be item => item.Value, i.e. for item, output item.value. So, the whole expression will be

var total = items.Select(item => item.Value).Distinct().Count();
Share:
34,838
Kyle
Author by

Kyle

Updated on July 08, 2020

Comments

  • Kyle
    Kyle almost 4 years

    Given a linq expression of an object collection 'items' such as this:

    var total = (from item in items select item.Value).Distinct().Count()
    

    Is it possible to convert this to use linq functions/lambdas:

    items.Select(???).Distinct().Count()