C# eacn项的linq联接列表

C# eacn项的linq联接列表,c#,linq,C#,Linq,我有3个集合:团队、路线、航路点 团队可能有许多路线,路线可能有许多航路点 我想参加团队的集合,团队的每一项都必须有集合路线,每一条路线都必须有集合航路点 我知道如何处理两个系列。 这是我的疑问 var waypoints = from team in teams join route in Routes on team.TeamID equals route.TeamID into rList se

我有3个集合:团队、路线、航路点

团队可能有许多路线,路线可能有许多航路点

我想参加团队的集合,团队的每一项都必须有集合路线,每一条路线都必须有集合航路点

我知道如何处理两个系列。 这是我的疑问

var waypoints = from team in teams
                join route in Routes on team.TeamID equals route.TeamID
                into rList
                select new { teamName= team.teamName, Rlist = rList};
foreach (var t in waypoints)
{
    Console.WriteLine("<{0} team>:", t.teamName);
    foreach (var m in t.Rlist)
        Console.WriteLine(" " + m.RouteName);
    Console.WriteLine();
}

您需要嵌套LINQ以生成所需的答案:

var waypoints = from team in teams
                join route in Routes on team.TeamID equals route.TeamID into rList
                select new {
                    team.teamName,
                    Rlist = (from route in rList
                             join waypoint in WayPoints on route.RouteID equals waypoint.RouteRouteID into wList
                             select new {
                                 route,
                                 Wlist = wList.ToList()
                             }).ToList()

})

这看起来像是一个复制粘贴的代码,如果你能给我们一个完整的代码示例(包括代码中的示例输入和定义良好的预期输出),那就没有任何意义了我们可以更好地帮助您。如果您在EF中正确设置了外键关系,那么您可以使用导航属性来执行此操作,而不是连接您的图片不表示有效的C#对象-如果您正确表示对象,(尝试类定义),我想这将有助于您理解。非常感谢!这就是我想要了解的,在哪里以及如何使用第三次连接。
var waypoints = from team in teams
                join route in Routes on team.TeamID equals route.TeamID into rList
                select new {
                    team.teamName,
                    Rlist = (from route in rList
                             join waypoint in WayPoints on route.RouteID equals waypoint.RouteRouteID into wList
                             select new {
                                 route,
                                 Wlist = wList.ToList()
                             }).ToList()