无法隐式转换类型问题

时间:2013-06-26 09:56:19

标签: c# asp.net asp.net-mvc-4

代码:

public class MtApsApprovalStatusDomainInput
{
   public List<MSExtended<UStatus>> UStatus { get; set; }
}

public class UStatus : StatusBase<UStatusValues>
{
}

public class MSExtended<T> : MSBase<T>
{
    public bool IsRecent { get; set; }
}

错误是抛出以下行:

UStatus recentUStatus = MtApsStatusDomainInput.UStatus.Where(x => x.IsRecent).FirstOrDefault();

错误详情:

  

无法隐式转换类型   'Dt.Models.MtAps.MSExtended'   到'Dt.Models.UStatus'

2 个答案:

答案 0 :(得分:0)

您将UStatus包裹到MSExtended,意味着

MtApsStatusDomainInput.UStatus.Where(x => x.IsRecent).FirstOrDefault();

将返回MSExtended<UStatus>而不是UStatus

答案 1 :(得分:0)

MtApsStatusDomainInput.UStatus.Where(x => x.IsRecent).FirstOrDefault()将返回 MSExtended<UStatus>作为MSExtended<UStatus>

的列表

您可能想要使用

MSExtended<UStatus> recentUStatus = MtApsStatusDomainInput.UStatus.Where(x => x.IsRecent).FirstOrDefault();

OR

var recentUStatus = MtApsStatusDomainInput.UStatus.Where(x => x.IsRecent).FirstOrDefault();