我们正在为.NET DataGrid控件开发一个自动过滤器加载项,它的工作方式类似于相同的MS Excel功能。它允许输入自定义过滤条件。我们需要检查网格单元是否满足自定义过滤条件,但问题是它是字符串格式。 为了优化性能,我们可以将字符串转换为相应的数字,并将其与单元格值作为实数进行比较,但是存储此缓存值的最佳.NET数据类型是什么? Double是坏的,因为我们可以丢失一些数据(精度),BigInteger很好但仅适用于整数值。 另一种方法可以是将单元格文本和字符串值进行比较,以便在它们采用字符串格式时作为数字进行过滤。任何人都可以知道如何在.NET中以最好的方式做到这一点?或者只是在VB.NET中我们正在这个环境中开发?
答案 0 :(得分:0)
创建一个能够存储所有可能数字格式的自定义类:
class ParsedNumber {
NumberType Type; //Integer, FloatingPoint, Decimal
BigInteger Integer;
double FolatingPoint;
decimal Decimal;
}
这个类应该实现相等和比较运算符。
您可以将每个单元格解析为此类的实例。该类应抽象出不同的格式,以便您可以将其视为数字。
你也可以将它作为一个结构来保存堆分配。