【发布时间】:2018-11-07 12:16:42
【问题描述】:
根据这个堆栈问题:How to calculate the rolling average of a C# array list?
您可以像这样在普通列表中取值的运行平均值:
List<int> numlist = new List<int>();
List<double> averages = Enumerable.Range(0, numlist.Count - 3).
Select(i => numlist.Skip(i).Take(4).Average()).
ToList();
我的问题:我希望能够在类列表的特定子集上做到这一点:
public class Data_Raw
{
public DateTime DateDataRaw { set; get; }
public double PriceRaw { set; get; }
public double PercentageReturnsRaw { set; get; }
public Data_Raw(DateTime _dateDataRaw,double _priceRaw, double _percentageReturnsRaw)
{
DateDataRaw = _dateDataRaw; //1
PriceRaw = _priceRaw;
PercentageReturnsRaw = _percentageReturnsRaw;
}
}
List<Data_Raw> myRawData = new List<Data_Raw>();
我想在 myRawData 的类列表中计算 PriceRaw 数据的平均值。
编辑:
如果这是PriceRaw的数据:
myRawData[0].PriceRaw=2
myRawData[1].PriceRaw=3
myRawData[2].PriceRaw=4
myRawData[3].PriceRaw=5
如何得到PriceRaw后三个值的平均值,即= (3+4+5)/3 = 4。仅在myRawData.Skip之后直接可用
如果我尝试将其附加到myRawData[].PriceRaw.Skip,则跳过不可用
这个堆栈问题让我更接近,但无法弄清楚:Linq query a List of objects containing a list of object
【问题讨论】:
-
那么问题是什么?你为什么不按照你在上面所说的方式来做呢?
-
如果您能提供一个minimal reproducible example包括示例数据,并指定您想要实现的确切结果,那就太好了。