在一個類中,我處理一個IInterface
的列表。合併兩個實現相同接口的類的列表
我想在一個獨立的方式來處理的兩種可能的實現,因此:
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
};
}
我想返回List<IInterface>
,相同的輸入,無論它原來是比預期的更困難
return new List<IInterface> {
FirstList,
SecondList
};
編譯但拋出在運行時一個InvalidCastException,
return new List<IInterface>.AddRange(FirstList).AddRange(SecondList);
甚至沒有編譯...
什麼是正確的方法來做到這一點?
您的最後一個示例幾乎是正確的。它缺少括號,'AddRange'返回類型爲'void',所以你不能鏈接在一起:'var ret = new List(); ret.AddRange(FirstList); ret.AddRange(SecondList); return ret;' –