我希望减少类似于表格的集合对象的内存消耗。
假设有以下类结构:
Class Cell
{
public property int Data;
public property string Format;
}
Class Table
{
public property Dictionary<Position, Cell> Cells;
}
当单元格数量很多时,Cell类的Data属性可能是可变的,但Format属性可能会重复多次,例如标题单元格可能具有空格式字符串以用作标题,而数据单元格可能都是“0.00”。
一个想法是采取以下措施:
Class Cell
{
public property int Data;
public property int FormatId;
}
Class Table
{
public property Dictionary<Position, Cell> Cells;
private property Dictionary<Position, string> Formats;
public string GetCellFormat(Position);
}
这将节省字符串的内存占用,但是 FormatId 整数值仍然会被重复多次。
有没有比这更好的实现方式?我已经看过亨元模式,但不确定是否适用于此。
我正在考虑的一种更复杂的实现方式是完全从 Cell 类中移除 Format 属性,而是将格式存储在一个字典中,以便将相邻单元格组合在一起。
例如,可能会有两个如下所示的条目:
<item rowFrom=1 rowTo=1 format="" /
>
<item romFrom=2 rowTo=1000 format="0.00" /
>