根据半小时时间将值复制到数组

时间:2010-10-28 09:50:43

标签: c# linq datetime

我从我的服务器收到一堆价值的各种日期,每个值对应一天半小时,即今天会有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;

我需要将其转换为矩阵格式..比如

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

日期时间也可以在任何仲裁时间开始,它不一定要在00:00:00开始,它甚至可以从23:00:00开始,但是这个值应该放在适当的索引处。这种情况将在输出矩阵的第48位。

最好的方法是什么?

我编写了一个linq查询来解析传入的数据(包含所有值)

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

这实际上给了我按日期分组的矩阵输出格式,但是目前如何创建与时间相关的输出。请问你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

我认为最好是创建一个类型,该类型采用您输入的键值对并在本地存储它们。

然后有一个方法将所有值解析为所需的输出。

它可以创建一个多维数组,并根据需要将vaules添加到数组