无法隐式转换类型问题

本文关键字:类型 问题 转换 | 更新日期: 2023-09-27 18:20:07

代码:

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"

无法隐式转换类型问题

您将UStatus封装到MSExtended中,表示

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

将返回CCD_ 3而不是CCD_。

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

你可能想使用

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

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