1

我们正在为我们的 .NET DataGrid 控件开发一个自动筛选插件,该插件的工作原理类似于相同的 MS Excel 功能。它允许输入自定义过滤条件。我们需要检查一个网格单元格是否满足自定义过滤条件,但问题是它是字符串格式。为了优化性能,我们可以将字符串转换为相应的数字,并将其作为实数与单元格值进行比较,但是存储此缓存值的最佳 .NET 数据类型是什么?Double 很糟糕,因为我们可能会丢失一些数据(精度),BigInteger 很好,但仅适用于整数值。另一种方法可能是比较单元格文本和字符串值以过滤为数字,而它们是字符串格式。任何人都可以知道如何在 .NET 中以最佳方式做到这一点吗?还是仅在 VB.NET 中,因为我们在这种环境中进行开发?

4

1 回答 1

0

创建一个能够存储所有可能的数字格式的自定义类:

class ParsedNumber {
 NumberType Type; //Integer, FloatingPoint, Decimal
 BigInteger Integer;
 double FolatingPoint;
 decimal Decimal;
}

这个类可能应该实现相等和比较运算符。

您可以将每个单元格解析为此类的一个实例。该类应该抽象不同的格式,以便您可以将其视为一个数字。

您还可以将其设为结构以节省堆分配。

于 2012-09-06T09:55:04.853 回答