【问题标题】:Convert from IEnumerable<T> to IEnumerable<U> via implicit conversion [duplicate]通过隐式转换从 IEnumerable<T> 转换为 IEnumerable<U> [重复]
【发布时间】:2017-02-06 19:57:53
【问题描述】:

我正在尝试向我的 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&lt;QuoteSalesRep&gt; 转换为IEnumerable&lt;VMSalesRep&gt;。但是我得到了错误:

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

我做错了什么?

【问题讨论】:

标签: c#


【解决方案1】:

您只能从您来自或要去的类内部声明隐式转换。因此,您需要将转换放在 IEnumerable&lt;T&gt; 的定义中,因为这是您的源和目标的类型,这是无法完成的

您将无法进行从一个 IEnumerable 到另一个的隐式转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多