如何在C#中表示表格数据,C#在可变列数中具有通用数据类型?

如何在C#中表示表格数据,C#在可变列数中具有通用数据类型?,c#,generics,C#,Generics,我有下面的C#解决方案,它使用泛型来表示表格数据,每个列中有不同的数据类型。最终目标是比较任意两个表的数据点,这就是为什么列有一个实现IComparable的约束。我的困难在于扩展它,以便它能够支持用户希望的任意数量的列: class TableObject<RowHeaderType, Column1Type, Column2Type> where Column1Type : IComparable where Column2Type : IComparable {

我有下面的C#解决方案,它使用泛型来表示表格数据,每个列中有不同的数据类型。最终目标是比较任意两个表的数据点,这就是为什么列有一个实现IComparable的约束。我的困难在于扩展它,以便它能够支持用户希望的任意数量的列:

class TableObject<RowHeaderType, Column1Type, Column2Type>
    where Column1Type : IComparable
    where Column2Type : IComparable
{
    List<string> columnHeaders;
    Dictionary<RowHeaderType, Dictionary<string, IComparable>> tableDict;
    Dictionary<string, IComparable> rowDict;

    public TableObject(List<string> _columnHeaders)
    {
        tableDict = new Dictionary<RowHeaderType, Dictionary<string, IComparable>>();
        columnHeaders = _columnHeaders;

    }

    public void addRow(RowHeaderType rowHeader, Column1Type colvalue_1, Column2Type colvalue_2)
    {
        // rowDict represents one row, with each key/value representing a column of data
        rowDict = new Dictionary<string, IComparable>();

        rowDict.Add(columnHeaders[1], colvalue_1); // [0] was the row header table 
        rowDict.Add(columnHeaders[2], colvalue_2);

        // add this new row to the master table
        tableDict.Add(rowHeader, rowDict);
    }

}
类TableObject
其中Column1Type:IComparable
其中Column2Type:IComparable
{
列出列标题;
字典表;
词典;
公共表对象(列表_列标题)
{
tableDict=新字典();
columnHeaders=\u columnHeaders;
}
public void addRow(rowHeader类型rowHeader,column1类型colvalue_1,column2类型colvalue_2)
{
//rowDict表示一行,每个键/值表示一列数据
rowDict=新字典();
添加(columnHeaders[1],colvalue_1);//[0]是行标题表
添加(ColumnHeader[2],colvalue_2);
//将此新行添加到主表
tableDict.Add(rowHeader,rowDict);
}
}
在构造函数中,我传入一个列表,它是列标签。然后我将调用addRows(理想情况下)一个rowHeaderType值和一个数组,该数组表示组成整行的值,每个值都对应于定义的columnType

我的目标是使它尽可能通用。这里我唯一的限制是列名是字符串,因为我最终希望在datagridview中显示它

如果您觉得有更好的替代设计,请随时提出建议。谢谢。

你知道s、s、s和s吗

你甚至可以和我一起工作。他们有很多现有的支持