我需要快速方便的方法来组织内存中的表数据

时间:2010-08-09 08:22:28

标签: c# .net dictionary datatable hashtable

初始条件:

DateTime moment

string key

double value

我想要的代码

Add("2010.08.09 12:55:34", "px_ValX", 10);
Add("2010.08.09 12:55:35", "px_ValX", 1);
Add("2010.08.09 12:55:35", "px_ValY", 12);
Add("2010.08.09 12:55:35", "px_ValZ", 100);
Add("2010.08.09 12:55:38", "px_ValZ", 5); 

然后我想从该数据数组获取表

DataTable ToTable()

产生

date|px_valX|px_ValY|px_ValZ
"2010.08.09 12:55:34"|10|0|0
"2010.08.09 12:55:35"|1|12|100
"2010.08.09 12:55:38"|0|0|5

如果我能做得快,那也很棒

double Get(DateTime moment, string key)

DataTable Get(string key) 

产生下表

data|value
"2010.08.09 12:55:34"|10

这是SQL任务,但我需要内存数据结构。我打算使用C#DataTable类及其Select方法,但我认为有更快捷方便的方法。

就在这一刻,我在我的应用程序中使用以下类

[Serializable]
public class CalcItem
{
    public CalcItem()
    {
        Additional = new Dictionary<string, double>();
    }
    public Dictionary<string, double> Additional { get; set; }

    public DateTime Date { get; set; }
}

并在CalcItemManager

public List<CalcItem> CalcItems { get; set; }

要添加数据

var clc = new CalcItem();
clc.Additional.Add("px_ValX", 10);
_dataManager.CalcItems.Add(clc);