Это должно быть возможно, поскольку за кулисами LINQ переводится в лямбды и деревья выражений (по крайней мере, LINQ для объектов)
В вашем случае ???
будет иметь значение item => item.Value
, т.е. для item
, вывод item.value
.
Таким образом, все выражение будет
var total = items.Select(item => item.Value).Distinct().Count();