LINQ 以 Lambda 形式选择不同计数
Posted
技术标签:
【中文标题】LINQ 以 Lambda 形式选择不同计数【英文标题】:LINQ Select Distinct Count in Lambda form 【发布时间】:2011-09-30 09:29:39 【问题描述】:给定一个对象集合“项目”的 linq 表达式,例如:
var total = (from item in items select item.Value).Distinct().Count()
是否可以将其转换为使用 linq 函数/lambda:
items.Select(???).Distinct().Count()
【问题讨论】:
或只是items.GroupBy(p => p.Value).Count()
【参考方案1】:
使用这个:
items.Select(i => i.Value).Distinct().Count()
【讨论】:
谢谢 - 不知道我怎么没试过!【参考方案2】:这一定是可能的,因为在幕后,LINQ 被转换为 lambdas 和表达式树(至少 LINQ 到对象)
在您的情况下,???
部分将是 item => item.Value
,即对于 item
,输出 item.value
。
所以,整个表达式将是
var total = items.Select(item => item.Value).Distinct().Count();
【讨论】:
谢谢,+1 的描述,但恐怕丹尼尔会打败你!以上是关于LINQ 以 Lambda 形式选择不同计数的主要内容,如果未能解决你的问题,请参考以下文章
LINQ/Lambda 表达式:加入列表并使用给定公式查找数据的平均计数