0

假设我在 C# 中有一些 Airport、Aeroplane、Passenger 和 Seat 类。乘客的 id 是飞机,飞机的 id 是机场。乘客也有一个座位的 ID。

我将如何编写一个 linq 查询以将它们构建到层次结构中,然后将它们呈现到 HTML 表中?

我需要它看起来像:

          1      2      3
Gatwick  
747       July   Kim    Ben
767       Neal   Toby
A380      Becky

Hong Kong
747       Gary   Steve  Gary
MiG-35    Ted

etc.. 

(座位号在顶部)

多年来,我一直在 LinqPad 前摸不着头脑,但我只能在层次结构中获得一层。我想我可能需要使用嵌套的 GridViews 或者编写一个自定义控件来呈现结果对象,但不确定最好的方法。

理想情况下,我想用一个查询来获取所有数据(以前的程序员已经使用每个单元格一个查询完成了它,页面需要一分钟才能加载!)

非常感谢

4

1 回答 1

0

这将需要 2 个 LINQ 查询:

  1. 您必须按座位号分组(或使用 .Distinct() 获取座位号)。使用它来输出列;
  2. 然后按机场分组,然后按飞机分组,然后在每个飞机分组中,您都有乘客 - 您将 .Join() 他们与您的座位集合。

    passengers
      .GroupBy(p => p.Aeroplane)
      .GroupBy(p => p.Airport)
      .Join(seats, p=>p.Seat, s=>s, (p,s)=>new { Passenger = p, Seat = seat })
    

这将为您在每架飞机和每个机场提供一系列乘客和他们各自的座位。

于 2012-06-08T16:41:05.667 回答