LINQ以Lambda格式选择Distinct Count

Kyl*_*yle 30 c# linq lambda select distinct

给定对象集合'items'的linq表达式,例如:

var total = (from item in items select item.Value).Distinct().Count()
Run Code Online (Sandbox Code Playgroud)

是否可以将其转换为使用linq函数/ lambdas:

items.Select(???).Distinct().Count()
Run Code Online (Sandbox Code Playgroud)

Dan*_*rth 50

用这个:

items.Select(i => i.Value).Distinct().Count()
Run Code Online (Sandbox Code Playgroud)


SWe*_*eko 11

它必须是可能的,因为在幕后,LINQ被翻译为lambdas和表达式树(至少LINQ到对象)

在您的情况下,该???部分将是item => item.Value,即item输出item.value.所以,整个表达将是

var total = items.Select(item => item.Value).Distinct().Count();
Run Code Online (Sandbox Code Playgroud)

  • 似乎太迟了3分钟!! (3认同)