有没有一种方法可以将2种不同的类型添加到c#中的新列表中?

时间:2020-09-11 13:38:02

标签: c# entity-framework-core

我正在尝试将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; }

1 个答案:

答案 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选项。如果不是,将不同类型的对象添加到同一列表的原因是什么?您实际上要解决的问题可能出在该问题的上下文之外。