如何使用最小的投射将对象转换为双精度

时间:2011-06-22 07:14:41

标签: c# casting

假设我有5个对象,每个对象包含双值。

我想总结一下,以便

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

一种方法是将每个对象转换为double,然后将它们相加。

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

有没有更短的方法呢?

2 个答案:

答案 0 :(得分:6)

你可以把它们放到一个数组中并使用一些LINQ:

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

然而,最好的方法是将双打保持为双打,不要将它们放入物体中。

答案 1 :(得分:4)

施展,但风格......:

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

可能的升级:

  1. 您可以使用扩展方法
  2. 添加类型安全检查
  3. HTH