给定对象集合“项目”的linq表达式,例如:
var total = (from item in items select item.Value).Distinct().Count()
是否可以将其转换为使用linq函数/ lambdas:
items.Select(???).Distinct().Count()
答案 0 :(得分:50)
使用此:
items.Select(i => i.Value).Distinct().Count()
答案 1 :(得分:11)
必须有可能,因为在幕后,LINQ被翻译为lambdas和表达式树(至少LINQ到对象)
在您的情况下,???
部分为item => item.Value
,即item
,输出item.value
。
所以,整个表达式将是
var total = items.Select(item => item.Value).Distinct().Count();