C# 创建子矩阵

C# 创建子矩阵,c#,datetime,C#,Datetime,我想创建下面矩阵的子矩阵或ArrayList(我把它做得更小,这样就适合了),其中tradeTime>sessionBegin和

我想创建下面矩阵的
子矩阵
ArrayList
(我把它做得更小,这样就适合了),其中tradeTime>sessionBegin和
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);

首先,处理二维阵列可能会有点尴尬。为了简化,您可以将该矩阵的每一行分组为一个对象:

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);

很好的解决方案,谢谢。首先我应该把它放在一个列表中,我想,我在excel中有数据,所以很容易用连接函数将它放在一个矩阵中。。。
{ 2012, 11, 9, 11, 1, 7, 1, 8552 },
{ 2012, 11, 9, 11, 7, 8, 1, 8556 }