转换自IEnumerable

本文关键字:转换 IEnumerable 标签 | 更新日期: 2023-09-27 18:09:12

我试图添加一个隐式转换到我的ViewModel类(VMSalesRep):

public static implicit operator IEnumerable<VMSalesRep> (IEnumerable<QuoteSalesRep> vm)
{
    IEnumerable<VMSalesRep> result = vm.Select(x => new VMSalesRep()
    {
        QuoteSalesRepID = x.QuoteSalesRepID,
        FirstName = x.FirstName,
        LastName = x.LastName,
        CommisionPercentage = x.CommisionPercentage
    });
    return result;
}

我需要将IEnumerable<QuoteSalesRep>转换为IEnumerable<VMSalesRep>。然而,我得到的错误:

用户定义的转换必须与封闭类型

进行转换。

我做错了什么?

转换自IEnumerable<IEnumerable<标签;通过隐式转换

您只能在来自或要到的类内部声明隐式转换。因此,您需要将转换放在IEnumerable<T>的定义中,因为这是您的源和目标类型,

不能从一个IEnumerable隐式转换为另一个IEnumerable