如何实现List

本文关键字:List 何实现 实现 | 更新日期: 2023-09-27 18:15:44

我有一个对象列表:

  MyDisplayObjects = new List<ISave> { Patient, ServiceBilling, ReferredBy, POA, PrimaryInsurance, SecondaryInsurance };

每个对象从ISave继承,因此

foreach (var o in MyDisplayObjects)
 {
  o.CanSaveEvent += new EventHandler<CanSaveEventArgs>(CanSaveEventHandler);
 }

完美工作。

现在我希望为每个对象添加一个单独的接口,ISelfPay和do:

  MyDisplayObjects = new List<ISave,ISelfPay> { Patient, ServiceBilling, ReferredBy, POA, PrimaryInsurance, SecondaryInsurance };

所以这也将工作:

foreach (var o in MyDisplayObjects)
{
  o.CanSaveEvent += new EventHandler<CanSaveEventArgs>(CanSaveEventHandler);
  this.SelfPayEvent += new EventHandler<SelfPayEventArgs>(o.CheckInViewModel_SelfPayEvent);
 }

错误:无法初始化List类型的对象<'ISave,ISelfPay'>集合初始化器。

我在Google上似乎找不到多少帮助。这是如何做到的呢?

我可以做两个列表,但如果可能的话,我想学习如何用一个列表来做。:)

TIA

如何实现List<T,T>

我假设您希望您的列表由可保存(ISave)和自付(ISelfPay)的项目填充

为了获得此功能的编译时安全性,您必须定义一个包含这两个接口的单个接口。

public interface ISaveAndSelfPay : ISelfPay, ISave
{
}
var listOfSavableAndSelfPayableThings = new List<ISaveAndSelfPay>();