繁体   English   中英

如何使用LINQ / Lambda将结果选择到在对象内声明的对象中?

[英]How to select results into an object declared within an object using LINQ/Lambda?

我有一个从存储过程返回的结果集,我需要从这些结果中填充对象的字段。 麻烦的是我的对象声明了另一个对象,该对象具有需要从结果中填充的字段。

我有一个Vehicle对象,并在我的Vehicle对象中声明了我有Truck对象。 我无法使用点表示法访问Truck对象的字段。 简化的代码和类。

return dc.GetVehicleList(localDateTimeOffset).Select(p => new Vehicle
{
     VehicleNumber = p.VehicleNumber
     Truck.TruckNumber = p.TruckNumber /* This does not work */
}).Cast<IVehicle>().ToList();

public class Vehicle
{
   public int VehicleNumber;
   public Truck Truck;
}

public class Truck
{
   public TruckNumber;
}

使用LINQ / Lambda,如何访问在Vehicle对象中声明的Truck对象的成员,以便可以从结果集中设置这些值?

您需要创建内部对象以及外部对象:

return dc.GetVehicleList(localDateTimeOffset).Select(p => new Vehicle
{
     VehicleNumber = p.VehicleNumber
     Truck = new Truck 
     {
        TruckNumber = p.TruckNumber
     }
}).Cast<IVehicle>().ToList();

您还可以在Vehicle类的构造函数中创建truck对象,并保留查询。

public class Vehicle
{
   public Vehicle()
   {
      Truck = new Truck();
   }

   public int VehicleNumber;
   public Truck Truck;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM