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