Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在这种嵌套场景中使用linq中的投影?_C#_Linq - Fatal编程技术网

C# 如何在这种嵌套场景中使用linq中的投影?

C# 如何在这种嵌套场景中使用linq中的投影?,c#,linq,C#,Linq,我是Linq的新手,我刚刚开始学习Linq查询。我相信这与投影有关。但我不知道如何深入研究以获得我想要的结果。 这是我的场景:办公室有两个分支 分支机构1,分支机构2 分行1有部门1和部门1 分行2有部门2和部门2 每个部门都有员工 但我需要通过办公室查询,找到部门2和部门2的所有员工的姓名,部门2和部门2在分公司2 这是我做的 var result = office.Branch.First() 但是first()会给我分支机构1,我不想要分支机构2,然后是部门2,然后是所有员工 我将非常感

我是Linq的新手,我刚刚开始学习Linq查询。我相信这与投影有关。但我不知道如何深入研究以获得我想要的结果。 这是我的场景:办公室有两个分支

分支机构1,分支机构2

分行1有部门1和部门1

分行2有部门2和部门2

每个部门都有员工

但我需要通过办公室查询,找到部门2和部门2的所有员工的姓名,部门2和部门2在分公司2

这是我做的

var result = office.Branch.First()
但是
first()
会给我分支机构1,我不想要分支机构2,然后是部门2,然后是所有员工

我将非常感谢帮助我编写linq查询

  var result = from branch in office.Branches
               where branch.Name == "branch2"
               from dept in branch.Departments
               where dept.Name == "dept2"
               select dept.Employees.ToList();

这提供了一个部门2->dept2中所有员工的数字列表,我认为办公室的类型是
列表
。请试试这个。我希望这对您有所帮助:

        List<Employee>listOfEmployee = office.Where(l =>l.Branch == branch_2 
                                                          &&l.Branch.DeptName == dept_2_2 )
                                                          .Select(l => l.Branch.Dept.Employee.EmpName)
                                                          .ToList();
listofEmployee=office.Where(l=>l.Branch==Branch\u 2
&&l、 Branch.DeptName==dept_2_2)
.Select(l=>l.Branch.Dept.Employee.EmpName)
.ToList();

请您向我们提供您的代码,如果可能的话,提供一些示例数据,以便我们了解问题所在。请看:我刚刚开始学习Linq to object。所以我尝试在内存中查询对象集合。我有一个Office类,它有List,Branch有List,dept有List,Employee有name属性。@gaurav根据您的评论更新了我的答案。