c# - 在 select 语句中重用匿名变量

标签 c# .net linq

<分区>

db.opt.Select(z => new { 
    z.QuestionTitle,
    Count = z.Responces.Where(x => x.Responseval == Constants.options.Agree).Count(),
    Perc = (totresponcecount/Count)*100
}).ToList();

在上面的 lambda 中,在为例如计算百分比时我想写 (totresponcecount/Count)*100 其中 Count 已经在上面的语句中计算过了。

那么我如何访问 Count 值来写入 Perc = (totresponcecount/Count)*100

最佳答案

我认为在这种情况下,查询语法使用 let 关键字会更好:

var result = from z in db.opt
             let count = z.Responces.Count(x => x.Responseval == Constants.options.Agree)
             select new { z.QuestionTitle, count , Perc = (totresponcecount/count) * 100 };

另请注意,您可以将谓词传递给 Count 方法,因此不需要 Where(...).Count()

关于c# - 在 select 语句中重用匿名变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48729251/

相关文章:

c# - 后台运行方法和UI Thread WPF

c# - 生成 PDF 时无法获取捷克语字符

c# - 从 sql server-ce 数据库中的不同表中获取列的总和并将结果显示在标签控件中

c# - 程序 '[12460] TestProject.exe' 已退出,代码为 -1 (0xffffffff)

c# - 上传视频文件后如何获取 youtube 视频链接?

c# - Linq to XML 没有输出

c# - 禁用按钮触发 WPF 中的事件

c# - 如何将 Predicate<T> 转换为 Expression<Predicate<T>> 以与 Moq 一起使用?

c# - LINQ 的 Enumerable.Take 方法在速度方面是否与 SQL 的 TOP 相当?

c# - ASP.net 找不到连接字符串