0

SubMatrix以下のマトリックスのまたはを作成したいと思いますArrayList(収まるように小さくしました)。ここで、tradeTime>sessionBeginおよび<sessionEndです。

DateTime tradeTime;
private DateTime sessionBegin;
private DateTime sessionEnd;

int[,] hTrades =
{
    { 2012, 11, 9, 10, 24, 1, -1, 8515 }, 
    { 2012, 11, 9, 10, 24, 2, -1, 8515 }, 
    { 2012, 11, 9, 10, 44, 3, 1, 8530 }, 
    { 2012, 11, 9, 10, 44, 4, 1, 8535 }, 
    { 2012, 11, 9, 10, 55, 5, -1, 8537 }, 
    { 2012, 11, 9, 10, 55, 6, -1, 8537 }, 
    { 2012, 11, 9, 11, 1, 7, 1, 8552 }, 
    { 2012, 11, 9, 11, 7, 8, 1, 8556 }, 
    { 2012, 11, 11, 18, 18, 1, 1, 8617 }, 
    { 2012, 11, 11, 18, 18, 2, 1, 8617 }, 
    { 2012, 11, 11, 18, 18, 3, 1, 8617 }, 
    { 2012, 11, 11, 18, 18, 4, 1, 8617 }
};

tradeTime = new DateTime(hTrades[i, 0], hTrades[i, 1], hTrades[i, 2],
    hTrades[i, 3], hTrades[i, 4], 0);
4

1 に答える 1

1

まず、その2次元配列の処理は少し厄介になる可能性があります。簡単にするために、そのマトリックスの各行をオブジェクトにグループ化できます。

class Trade
{
    public DateTime Date { get; set; }
    public int Value1 { get; set; }
    public int Value2 { get; set; }
}

....

DateTime sessionBegin = new DateTime(2012, 11, 9, 11, 0, 0);
DateTime sessionEnd = new DateTime(2012, 11, 9, 12, 0, 0);
List<Trade> trades = new List<Trade>();

for(int i = 0; i < hTrades.GetLength(0); i++)
{
    trades.Add(new Trade()
    {
        Date = new DateTime(hTrades[i, 0], hTrades[i, 1], hTrades[i, 2], hTrades[i, 3], hTrades[i, 4], 0),
        Value1 = hTrades[i, 5],
        Value2 = hTrades[i, 6]
    });
}

var sessionTrades = trades.Where(t => t.Date > sessionBegin && t.Date <= sessionEnd);

Tradeこれにより、次の取引に対応するオブジェクトが検索されます。

{ 2012, 11, 9, 11, 1, 7, 1, 8552 },
{ 2012, 11, 9, 11, 7, 8, 1, 8556 }
于 2012-11-15T00:26:48.403 に答える