Dans une classe, je traite une liste de IInterface
.Fusionner deux listes de classes implémentant la même interface
Je veux les deux implémentations possibles à traiter de manière séparée, d'où:
public List<IInterface> Process(List<IInterface> InterfaceList)
{
List<FirstImplementation> FirstList = FirstProcess(InterfaceList.OfType<FirstImplementation>.ToList());
List<SecondImplementation> SecondList = SecondProcess(InterfaceList.OfType<SecondImplementation>.ToList());
return new List<IInterface> {
FirstList,
SecondList
};
}
Je voudrais revenir un List<IInterface>
, même que l'entrée, à la fois, il se révèle être plus difficile que prévu
return new List<IInterface> {
FirstList,
SecondList
};
compiles mais lève une InvalidCastException lors de l'exécution,
return new List<IInterface>.AddRange(FirstList).AddRange(SecondList);
ne compile même pas ...
Quelle serait la bonne façon de faire cela?
Votre dernier exemple est presque correct. Il manque une parenthèse et 'AddRange' a un type de retour' void' donc vous ne pouvez pas l'enchaîner: 'var ret = new Liste(); ret.AddRange (FirstList); ret.AddRange (SecondList); return ret; ' –