我相对于C#比较新,但是有一定的C/C++背景。
我需要一个数据类型(类),类似于DataTable,但是允许存储列持有“简单”类型(int、float、boolean、[string])以及相同类型的数据(因此一列可以持有另一个表,该表也具有存储表等列)。
用C++的术语来描述,我正在描述以下情况:
我需要一个数据类型(类),类似于DataTable,但是允许存储列持有“简单”类型(int、float、boolean、[string])以及相同类型的数据(因此一列可以持有另一个表,该表也具有存储表等列)。
用C++的术语来描述,我正在描述以下情况:
typedef union { /*... */ } ValueType;
typedef std::vector<ValueType> ColumnValues;
class Column
{
private:
std::string m_name ;
ColumnValues m_values;
public:
Column(const std::string& name);
// ...
}
class Table
{
private:
std::string m_name;
std::vector<Column> m_cols;
public:
Table(const std::string& name, const std::vector<Column> *cols_ptr = NULL);
// ...
};
一个列可以保存任何有效的数据类型,其中包括表格数据类型(因此具有隐式无限嵌套功能)。
我的初始想法是从DataTable
继承,但我想在这里检查一下:
- 是否已经存在这样的类(无论是在
.Net
库中还是其他地方) - 是否是正确的方法
如果需要“自己动手”,我希望能得到一些指导(例如代码片段),以帮助我入门。
[编辑]
拟议使用:我打算主要使用这种数据类型来序列化我的库中的对象(以便我可以将它们发送到消息包等中),但也可以将它们用作一种数据字典,以允许我存储任意复杂度的数据。