我正在尝试向我的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>
。但是我收到了错误:
用户定义的转换必须转换为封闭类型
我做错了什么?
答案 0 :(得分:4)
您只能从您来自或将去的类中声明隐式转换。因此,您需要将转化置于IEnumerable<T>
的定义范围内,因为这是源和目标的类型, 无法完成
您将无法从一个IEnumerable进行隐式转换。