Étant donné une expression linq d'une collection d'objets 'items' comme celle-ci:
var total = (from item in items select item.Value).Distinct().Count()
Est-il possible de le convertir pour utiliser les fonctions linq/lambdas:
items.Select(???).Distinct().Count()
Utilisez ceci:
items.Select(i => i.Value).Distinct().Count()
Cela doit être possible, car en arrière-plan, LINQ est traduit en lambdas et en arbres d'expression (au moins LINQ en objets)
Dans votre cas, le ???
une partie serait item => item.Value
, c'est-à-dire pour item
, sortie item.value
. Donc, toute l'expression sera
var total = items.Select(item => item.Value).Distinct().Count();