Ответ 1
Используйте это:
items.Select(i => i.Value).Distinct().Count()
Учитывая выражение linq объектов 'коллекции элементов', таких как:
var total = (from item in items select item.Value).Distinct().Count()
Можно ли преобразовать это, чтобы использовать функции linq/lambdas:
items.Select(???).Distinct().Count()
Используйте это:
items.Select(i => i.Value).Distinct().Count()
Это должно быть возможно, поскольку за кулисами LINQ переводится в lambdas и деревья выражений (по крайней мере LINQ для объектов)
В вашем случае ???
будет item => item.Value
, т.е. для item
, вывести item.value
.
Таким образом, все выражение будет
var total = items.Select(item => item.Value).Distinct().Count();