同じ MS Excel 機能と同様に機能する .NET DataGrid コントロール用のオートフィルター アドインを開発しています。カスタム フィルター条件を入力できます。グリッド セルがカスタム フィルター条件を満たしているかどうかを確認する必要がありますが、問題は文字列形式であることです。パフォーマンスを最適化するために、文字列を対応する数値に変換し、実数としてセル値と比較することができますが、このキャッシュされた値を格納するのに最適な .NET データ型は何ですか? 一部のデータ (精度) を失う可能性があるため、Double は不適切です。BigInteger は適切ですが、整数値に対してのみです。もう 1 つの方法は、セル テキストと文字列値を比較して、文字列形式のときに数値としてフィルター処理することです。.NETでそれを行う最善の方法を誰かが知っていますか? それとも、この環境で開発しているので VB.NET でのみですか?
1 に答える
0
すべての可能な数値形式を格納できるカスタム クラスを作成します。
class ParsedNumber {
NumberType Type; //Integer, FloatingPoint, Decimal
BigInteger Integer;
double FolatingPoint;
decimal Decimal;
}
このクラスは、おそらく等価演算子と比較演算子を実装する必要があります。
各セルをこのクラスのインスタンスに解析できます。クラスは、数値として扱うことができるように、さまざまな形式を抽象化する必要があります。
これを構造体にして、ヒープ割り当てを節約することもできます。
于 2012-09-06T09:55:04.853 に答える