将IList <interface>转换为List <class> </class> </interface>

时间:2014-03-21 10:20:17

标签: oop c#-4.0 interface

List<CurrentElectionService> result = new List<CurrentElectionService>();    
result = oElectionsManager.GetCurrentElectionsByEId(
    employeeId.StringToGuid(), planYear) as List<CurrentElectionService>;

Public class CurrentElectionService : ICurentElection
{
   // Implement Interface fields here
}

方法 GetCurrentElectionsByEId 会返回IList<ICurentElection>,我想将界面强制转换为 CurrentElectionService 类,但它返回null 。请帮忙。

2 个答案:

答案 0 :(得分:0)

为什么不使用LINQ执行演员

List<CurrentElectionService> result = oElectionsManager.GetCurrentElectionsByEId(
    employeeId.StringToGuid(), planYear).Cast<CurrentElectionService>().ToList();

我希望这会有所帮助。

答案 1 :(得分:0)

您需要找出实际返回值的类型。如果您的实际对象不是您要将其强制转换为的类型,则as keywort始终返回null。

根据您给出的定义,您也可以尝试:

List<ICurentElection> result;    
result = oElectionsManager.GetCurrentElectionsByEId(
employeeId.StringToGuid(), planYear) as List<ICurentElection>;