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

Zai*_*Ali 2 c# casting

假设我有5个对象,每个对象包含双精度值.

我想总结一下这样

double result=obj 1+obj 2+obj 3+obj 4+obj 5;
Run Code Online (Sandbox Code Playgroud)

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

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

有没有更短的方法来做到这一点?

Mat*_*ias 6

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

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

但是,最好的方法是将双打保持为双精度,而不是将它们放入物体中.