0

我坚持以下代码:

我有一个模型 OrderList,其中仅包含以下内容:

public class OrderList : List<Tuple<Bagel, BagelType, int>>
{

}

在我的控制器中,我想创建一个新的 OrderList 并用一个函数填充它:

public ActionResult OrderReport()
    {
        OrderList lstitems = FillBagelCart2();

        return ViewPdf("Order report", "ReportView",lstitems);        
    }

FillBagelCart2 returns a List<Typle<Bagel, BagelType, int>> 

错误是:

错误 14 无法将类型“System.Collections.Generic.List>”隐式转换为“BestelBagels.Models.OrderList”。存在显式转换(您是否缺少演员表?)

不知道为什么这不起作用..

问候

已经工作了!我必须创建一个返回订单列表的函数,并用该列表之类的值填充..可以关闭

4

1 回答 1

2

OrderList虽然您可以从to隐式转换,List<Tuple<Bagel,BagelType,int>>因为它继承自它,但您不能向相反的方向转换,因为它可能OrderList包含基本列表未实现的方法和属性。

您需要更改 to 的返回类型FillBagelCart2OrderList为您的 OrderList 类提供适当的构造函数以允许它采用现有集合。

public class OrderList : List<Tuple<Bagel, BagelType, int>>
{
    public OrderList() : base() {}

    public OrderList(IEnumerable<List<Tuple<Bagel,BagelType,int>> items) : base(items) {}
}

然后你可以做

OrderList lstitems = new OrderList(FillBagelCart2());
于 2013-09-17T07:29:36.043 回答