c# - 如何将 lambda 表达式转换为 LINQ?

标签 c# linq

如何将此表达式转换为 LINQ?

var result = users.FirstOrDefault(x => x.Name == userName)?
    .Groups.FirstOrDefault(x => x.Group == userGroup);

我已经开始了:

var result = (from u in users
              where u.Name == userName
              select u).FirstOrDefault()?

我的类(class)是:

public class User
{
    public string Name { get; set; }
    public IEnumerable<Group> Groups { get; set; }
}

创建此查询时,我没有单独的 groups 列表,我可以用它对 2 个表进行联接。

但这就是我设法做到的程度。是否可以在同一个查询中进行连接?

最佳答案

我猜你想要这个:

var result = (from g in ((from u in users
                          where u.Name == userName
                          select u).FirstOrDefault().Groups)
              where g == userGroup
              select g).FirstOrDefault();

关于c# - 如何将 lambda 表达式转换为 LINQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53920413/

相关文章:

c# - 离开 While 循环?

c# - 反序列化错误 : The XML element 'name' from namespace '' is already present in the current scope

c# - 使用 Autofac 4 和 vNext 自注册库

c# - 正确处理 lambda 表达式中可能出现的 System.NullReferenceException

c# - 哪个 LINQ 语句更好,为什么?

c# - Linq-to-SQL 可以根据需要进行插入或更新吗?

c# - DataGridView selectionChanged 事件多次触发

c# - 修改 IQueryable.Include() 的表达式树,为 join 添加条件

c# - LINQ 查询连接两个表并从表 B 中选择表 A 对应的最新记录

linq - Linq是这个字符串。比较查询效率低下,有没有更好的方法?