如何实现List <T,T>?

Ala*_*yne 0 c# list

我有一个对象列表:

  MyDisplayObjects = new List<ISave> { Patient, ServiceBilling, ReferredBy, POA, PrimaryInsurance, SecondaryInsurance };
Run Code Online (Sandbox Code Playgroud)

每个对象从ISave继承的地方

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

完美的工作.

现在我想为每个对象ISelfPay添加一个单独的接口,并执行:

  MyDisplayObjects = new List<ISave,ISelfPay> { Patient, ServiceBilling, ReferredBy, POA, PrimaryInsurance, SecondaryInsurance };
Run Code Online (Sandbox Code Playgroud)

所以这也会起作用:

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

错误:无法使用集合初始值设定项初始化List <'ISave,ISelfPay'>类型的对象.

我似乎无法为Google找到太多帮助.这是怎么做到的?

(我可以制作两个列表,但是如果可能的话,我想学习如何使用一个列表.:)

TIA

Isa*_*avo 6

我假设你想通过都是可保存项目(填充您的列表ISave)和自支付(ISelfPay)

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

public interface ISaveAndSelfPay : ISelfPay, ISave
{
}

var listOfSavableAndSelfPayableThings = new List<ISaveAndSelfPay>();
Run Code Online (Sandbox Code Playgroud)