LINQ Select Distinct Count in Lambda form
Given a linq expression of an object collection 'items' such as this:
var total = (from item in items sel开发者_开发技巧ect item.Value).Distinct().Count()
Is it possible to convert this to use linq functions/lambdas:
items.Select(???).Distinct().Count()
Use this:
items.Select(i => i.Value).Distinct().Count()
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();
精彩评论