我订购了一个与车站设置相关联的车站列表:
public class Order
{
public int Id { get; set; }
public string Name { get; set; }
..
..
public List<OrderStation> OrderStations { get; set; }
}
public class OrderStation
{
public int Id { get; set; }
public int Status { get; set; }
..
..
public Order Order { get; set; }
public Station Station { get; set; }
}
public class Station
{
public int Id { get; set; }
public int DisplayOrder { get; set; }
..
..
}
命令中─&GT; OrderStations&LT; -Station
订单可以有任意数量的OrderStations(所有订单的OrderStations数量相同)。 OrderStations应该由Station的DisplayOrder订购。
我试图回来的是:
o.Name, os[0].Status, os[..].Status, os[16].Status
OrderStation按OrderStation.Station.DisplayOrder
排序我不习惯LINQ而且完全没有尝试像这样压扁子选择!
答案 0 :(得分:0)
使用Enumerable.OrderBy
。如果集合“可以是任意数量的OrderStations
”,则不应在每个Status
的匿名类型中使用固定属性。而是使用属于有序集合的属性:
var q = new
{
order.Name,
OrderedStatuses = order.OrderStations
.OrderBy(os => os.Station.DisplayOrder)
.ToList()
};