2010-10-28 23 views
0

我從我的服務器接收一組值,用於各種日期,每個值對應於一天中的半小時,即今天將有50個值......它倒是一個基本的鍵值對像下面將值複製到基於半小時時間的數組中

valsFromServer[28/10/2010 00:00:00] = 23; 
    valsFromServer[28/10/2010 00:30:00] = 100; 
    valsFromServer[28/10/2010 01:00:00] = 200; 
. 
. 
. 
    valsFromServer[30/10/2010 23:30:00] = 100; 
    valsFromServer[30/10/2010 23:30:00] = 200; 

我需要將其轉換成一個矩陣format..like

28/10/2010 23 100 200....till the 50th value 
. 
. 
30/10/2010 34 45 65...till the 50th value 

另外,日期時間可以在任何時間arbitary啓動一個,它不需要必須從00:00:00開始,甚至可能在23:00:00開始,但是這個值應該放在適當的指數,在這種情況下,它將在輸出矩陣的第48位。

這樣做的最好方法是什麼?

我寫了一個LINQ查詢,它解析傳入datatble(持有所有值)

date = row => row.Field<DateTime>("DateColumn").Date; 
priceSelector = column => column.Field<double>("PriceColumn"); 
matrixRows = cells => MatrixRow.Create(cells.Key, cells.Select(priceSelector)); 

    return table.AsEnumerable() 
          .GroupBy(date) 
           .Select(matrixRows); 

這實際上讓我按日期分組的矩陣輸出格式,但是目前套牢如何創建它的輸出與時間有關,請幫忙?

+0

其實大部分時間在他們24小時,不是25添加到陣列中。 – TonyK 2010-10-28 09:57:04

回答

1

我認爲最好的做法是創建一個類型,該類型採用輸入的鍵值對並將其存儲在本地。

然後有一個方法來解析所有的值到所需的輸出。

它可以創建一個多維數組,而vaules要求