C# eacn项的linq联接列表
我有3个集合:团队、路线、航路点 团队可能有许多路线,路线可能有许多航路点 我想参加团队的集合,团队的每一项都必须有集合路线,每一条路线都必须有集合航路点 我知道如何处理两个系列。 这是我的疑问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
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()