【问题标题】:LINQ Select Distinct Count in Lambda formLINQ 以 Lambda 形式选择不同计数
【发布时间】: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()

标签: c# linq select lambda distinct


【解决方案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 的描述,但恐怕丹尼尔会打败你!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-27
  • 2015-12-19
  • 1970-01-01
相关资源
最近更新 更多