我正在尝试将2个列表加在一起,但是它们的类型不同,有没有办法做到这一点?
我的2个列表
var customer = _context.GetInsuredData.FromSqlRaw("Execute dbo.GetDataID {0}", id).ToList();
var vehicle = _context.GetVehicleData.FromSqlRaw("Execute dbo.GetDataVehicle {0}", id).ToList();
我的环境:
public virtual DbQuery<Insured> GetInsuredData { get; set; }
public virtual DbQuery<Vehicle> GetVehicleData { get; set; }
答案 0 :(得分:1)
是的,有可能。
选项1 -让这些类实现一个公共接口(或继承一个公共基类):
public interface ICommonInterface
{ }
public class Insured : ICommonInterface
{ }
public class Vehicle : ICommonInterface
{ }
...然后使用具有接口通用类型的列表:
var list = new List<ICommonInterface>();
objectList.AddRange(insureds);
objectList.AddRange(vehicles);
选项2 -声明具有通用类型object
的列表:
var list = new List<object>();
list.AddRange(insureds);
list.AddRange(vehicles);
您可能需要重新考虑为什么要这样做。这些课程有什么共同点吗?然后使用interface / base class选项。如果不是,将不同类型的对象添加到同一列表的原因是什么?您实际上要解决的问题可能出在该问题的上下文之外。