如何用最小铸造量将物体铸造成两倍

本文关键字:两倍 何用最 | 更新日期: 2023-09-27 18:00:03

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

我想总结一下,这样

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!

有什么较短的方法可以做到这一点吗?

如何用最小铸造量将物体铸造成两倍

您可以将它们放入一个数组中,并在其中使用一些LINQ:

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

然而,最好的方法是将替身保留为替身,不要将其放入对象中。

Cast,但带有样式…:

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

可能的升级:

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

HTH