1

同じ MS Excel 機能と同様に機能する .NET DataGrid コントロール用のオートフィルター アドインを開発しています。カスタム フィルター条件を入力できます。グリッド セルがカスタム フィルター条件を満たしているかどうかを確認する必要がありますが、問題は文字列形式であることです。パフォーマンスを最適化するために、文字列を対応する数値に変換し、実数としてセル値と比較することができますが、このキャッシュされた値を格納するのに最適な .NET データ型は何ですか? 一部のデータ (精度) を失う可能性があるため、Double は不適切です。BigInteger は適切ですが、整数値に対してのみです。もう 1 つの方法は、セル テキストと文字列値を比較して、文字列形式のときに数値としてフィルター処理することです。.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 に答える