听起来您希望索引 0 是“当前数据”,而索引 1 是以前的数据。
您可以通过编写自己的封装百万元素数组的类来实现这一点。然后您可以指定索引right now
并将其添加到每个索引中。例如:
public class DataArray
{
readonly Object[] data;
int rightNow;
public int RightNow
{
get { return this.rightNow; }
set { this.rightNow = value; }
}
public DataArrat(Object[] data)
{
// TODO: Check that data is not null.
this.data = data;
}
// This is called an 'indexer':
public Object this[int index]
{
get
{
// TODO: Check whether (index + this.rightNow) is in the valid range.
return this.data[index + this.rightNow];
}
}
}
现在您可以像这样使用它,例如:
// Initialize the DataArray:
Object[] millionElementArray /* = from somewhere, e.g. */ = new []
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var data = new DataArray(millionElementArray);
// Start at bar 8:
data.RightNow = 8;
// Use the data:
Object currentData = data[0];
Object futureData = data[-1];
Object pastData = data[1];
// Go to the next bar:
data.RightNow--;
// Use the data:
Object currentData = data[0];
Object futureData = data[-1];
Object pastData = data[1];
// Rinse and repeat...
请注意,您应该替换Object
为您正在使用的数据类型,或者使类通用。