質問
私に格納された値の文字列として、 DataTable
がそれぞれの値かを表す int
, double
, や string
(大いに変換文字列中にインポート処理から外部データソース).かをテストする必要があり、見どのようなそれぞれの値のプラットフォームに対応
何より効率的な適用はありませんの実践的差?
- 試しに変換する
int
(およびそのdouble
).る場合転換の作品の返却true
.例外がスローされ、帰りfalse
. - 正規表現にマッチしたパターンの
int
またはdouble
- その他の方法は?
解決
うに利用しまいます。TryParseでの性能を持っています。
他のヒント
私は、いくようなマイクロます。いんかないもの、そして明確かつ簡潔な読みやすくします。最悪のものでなければならないことで読みやすさを犠牲にした重大ではないとはいえない量。
最終的にはその対性の問題を保存したときのデータを示すが、実際の業績は問題...その他をお過ごしいただきたい場所で多くの時間をマイクロ-最適化して実際に高い保守コストおります。
という表示が出れば解析状況は、ボトルネックのアプリケーションの時であるうえインターネットには想像もつかな問題は解決します。と思いJeff(その他多数)bloggedこのようなものである。
く異なる結果を異なる方法によってはるかどうかでコンパイルoptimisationsます。基本的に数オプション:
object o;
//checking with is
o is int
//check type
o.GetType() != typeof( int )
//cast and catch exception
try{ int j = (int) o; }
catch {}
//use the tryparse
int.TryParse( Convert.ToString( o ), out j )
簡単に設定できるコンソールアプリにしようとするそれぞれの10,000倍を返します時間毎に試験がoでは、intが上がってます。
の try-catch
法最オブジェクトが次のどれかの場合は開催で、intの最も遅いっていることを確認してください(もより遅くな GetType
). int.TryParse
カクとした場合、文字列または未知のオブジェクトが遅くなります。
興味深いことにされていませんでした。純3.5optimisationsの o is int
チェックをして try-catch
時oんがint. o is int
は若干遅くなる場合o実際には、地下鉄からも近くて便利。
督促しますFxCopうまで警報の場合のように:
if( o is int )
int j = (int) o;
と思うことになるバグを修正FxCopで知らなint値タイプとして使用 o as int
です。
ご入力は常に文字列 int.TryParse
が、それ以外の is
オペレーターが迅速.
しているが、文字列かを見る必要があるかにかかわらず知ることのでintります。の場合 int.TryParse
通過していま double.TryParse
でも半数をチェック-返却はダブルまたは文字列と階の兼ね合いをint.
トラブルはあなたがることができる場合は、回答できるすべての三種類です。
3では、int、ダブルまたは文字列で
でおよそうとしていないとしていることは間違いありませんように特定のタイプです。とっても良い放置するだけなので素晴らしさを体験してもらい、は、できるだけ長く、あなたにあげる方法をマークが各一つしている場合の制御、ソースの文字列).
私が個人的に利用したい。tryparseします。tryparse.性能は、これらのメソッドはかなりの速さですよね。その両方を返します。さもなければならな文字列は、どのよう定義します。