2011-06-22 4 views
2

私は5つのオブジェクトを持ち、各オブジェクトには2つの値が含まれているとします。オブジェクトを最小二乗法で倍精度にキャストする方法

一つの方法は倍増し、それらを合計するために、各オブジェクトをキャストすることである

double result=obj 1+obj 2+obj 3+obj 4+obj 5; 

ように。私はそれらを合計したいです

double result=(double)obj 1+(double)obj 2+(double)obj 3+(double)obj 4+(double)obj 5; //let suppose this cast works! 

これを行う方法はありますか?

+0

私は思わないだから、うまくそれらは 'ダブル'であり、その意味で追加されたときにのみ良いです – V4Vendetta

+0

オブジェクトを一緒に(ダブルに)追加されたことを検出してからダブルを返すことはできませんか? –

答えて

6

あなたは配列にそれらを入れて、その上にいくつかのLINQを使用することができます。

double sum = new[] { obj1, obj2, obj3, obj4 }.Cast<double>().Sum(); 

はしかし、最善の方法は、ダブルスとダブルス維持されるだろうし、オブジェクトにそれらを入れていません。

+0

私はそれらをオブジェクトとしてデータテーブルから取得しました。 –

+0

型付きのデータセットを使用するか、DataRow.Field 拡張メソッドを使用できます。http://msdn.microsoft.com/en-us/library/bb301394.aspx – Matthias

+0

System.Data.DataSetExtensions.dllもインポートする必要があります。 – Matthias

4

キャストが、スタイルで...:

static double SumDoubleObjects(params Object[] objs) 
    { 
     double sum = 0; 
     foreach (object curr in objs) 
     { 
      sum += (double)curr; 
     } 
     return sum; 
    } 

可能なアップグレード:

  1. あなたは

HTH

をチェックし、安全なタイプを追加拡張メソッド
  • を使用することができます
  • 関連する問題