计算System.Array实例中的一系列对象值的总和

时间:2011-08-31 23:36:35

标签: c# arrays

我有这段代码:

private object Add(object a, object b)
{
    // Assume: a and b are the same types.
    // Assume: a and b are numeric types (ex. int).

    Array array = Array.CreateInstance(a.GetType(), 2);
    array.SetValue(a, 0);
    array.SetValue(b, 1);

    // Is it possible to return the Sum of the values inside the Array instance?
}

使用常规数组,泛型或避免传递对象,只需传递int,double等,有很多替代方法(当然也有更好的方法)。

试图弄清楚这是否可行(不使用动态原始类型)。

1 个答案:

答案 0 :(得分:2)

如果你知道数组只包含整数,你可以这样做:

int sum = array.Cast<int>().Sum();

如果数组包含整数数值,但你不知道它们的类型,你可以尝试这样的:

long sum = array.Cast<object>().Select(o => Convert.ToInt64(o)).Sum();