基于现有对象的条件创建相同类型的对象;C#LINQ

基于现有对象的条件创建相同类型的对象;C#LINQ,linq,object,collections,Linq,Object,Collections,我试图根据条件将一个对象分解为多个相同类型的对象。我如何用C#编写一个LINQ查询 public class Order { public List<Driver> Drivers { get; set; } public List<Vehicle> Vehicles { get; set; } } Order co = new Order(); 谢谢 BBvar newOrders=newlist(); 对于(int驾驶员=0,车辆=0; 司机

我试图根据条件将一个对象分解为多个相同类型的对象。我如何用C#编写一个LINQ查询

public class Order
{
   public List<Driver> Drivers { get; set; }
    public List<Vehicle> Vehicles { get; set; }
}


Order co = new Order();
谢谢 BB

var newOrders=newlist();
对于(int驾驶员=0,车辆=0;
司机
信息不足。如果你有10个司机和2辆车会发生什么?第一份订单有5名司机和2辆车吗?第二份订单有5名司机和0辆车吗?谢谢。在分解为5名驾驶员和4辆汽车后,我为每个订单构建了一个XML。但我想保持顺序。例如:第一组中的driver1的DriverID为1,drvier2为2,。。。。。驱动器5是5。现在,对于第二个XML中的第一个驱动程序,ID应该是6而不是1。我如何维护驱动程序的顺序。谢谢BB@BB:您的意思是,驾驶员和车辆都有Id,您需要在填写新订单时根据这些Id进行订购?不,他们没有Id。假设原始订单有15个驱动程序。当我分解它时,我的新订单现在将有三个订单。在newOrders的第二个顺序中,第一个驱动程序的索引将是1,但我希望它是6。类似地,newOrders第三级中第一个驱动程序的索引将是1,但我希望它是11。您是否将此索引存储在变量中?如果您讨论的是列表提供的内在索引,那么不建议使用它,因为您可能需要存储5个空驱动程序,以便将索引按二次顺序设置为6。一旦我明白你的要求,我可以给你一个解决方案。
if (co.Drivers.count > 5 || co.vehicles.count > 4)
       {

          //Break the total number of Drivers and Vehicles into sets of 5 and 4 and add them to the Orde object.


       }
var newOrders = new List<Order>();
for (int drivers = 0, vehicles = 0; 
     drivers < co.Drivers.Count || vehicles < co.Vehicles.Count; 
     drivers += 5, vehicles += 4)
{
    newOrders.Add(new Order { 
            Drivers = co.Drivers.Skip(drivers).Take(5), 
            Vehicles = co.Vehicles.Skip(vehicles).Take(4)
    }));
}