C# 分配一个函数';s返回的IEnumerable<;移动平均值>;对另一个对象的值
我从另一个函数调用此函数:C# 分配一个函数';s返回的IEnumerable<;移动平均值>;对另一个对象的值,c#,C#,我从另一个函数调用此函数: private static IEnumerable<MovingAverage> SimpleMovingAverage( IEnumerable<IexTradingStock> queue, int period) . . (omitted code) . { return movingAverages; 我在这一行“SMA=SimpleMov
private static IEnumerable<MovingAverage> SimpleMovingAverage(
IEnumerable<IexTradingStock> queue, int period)
.
. (omitted code)
.
{ return movingAverages;
我在这一行“SMA=SimpleMovingAverage(stocks,period);”上遇到一个错误,“无法将类型”System.Collections.Generic.IEnumerable隐式转换为“myBackEnd.Models.MovingAverage”存在显式转换(是否缺少强制转换)您的函数返回类型应该是IEnumerable而不是单个对象。当您声明此函数时,您将其返回类型设置为IEnumerable,但当您在return语句中返回MovingAverage的单个对象时。返回的对象应该与您声明的返回类型相同。其次,当您获取li时SimpleMovingAverage(股票,期间)中的st;并且在MovingAverage SMA=new MovingAverage()中设置列表是错误的。应该是
IEnumerable<MovingAverage> SMA = SimpleMovingAverage(stocks, period);
IEnumerable SMA=SimpleMovingAverage(股票,期间);
您试图将一个IEnumerable
(一组MovingAverage
)分配给一个MovingAverage
变量:这是不可能的
您可以将SMA变量声明为IEnumerable
,如下所示:
IEnumerable<MovingAverage> SMA = SimpleMovingAverage(stock, period);
MovingAverage SMA = SimpleMovingAverage(stock, period).FirstOrDefault();
或者,如果确实要返回单个元素,例如,获取第一个元素,如下所示:
IEnumerable<MovingAverage> SMA = SimpleMovingAverage(stock, period);
MovingAverage SMA = SimpleMovingAverage(stock, period).FirstOrDefault();
SimpleMovingAverage函数的返回类型是什么?SMA的类型是什么?错误准确地告诉您出了什么问题。作为一个补充点,如果您要在下一行中更新它,将SMA设置为任何新的值都没有意义。为什么
SMA
的类型是MovingAverage
当SimpleMovingAverage
返回MovingAverage
的“集合”(0或更多)?如果没有意义,就好像您试图将一盒鸡蛋分配给期望单个鸡蛋的变量。