我有这段代码:
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等,有很多替代方法(当然也有更好的方法)。
试图弄清楚这是否可行(不使用动态原始类型)。
答案 0 :(得分:2)
如果你知道数组只包含整数,你可以这样做:
int sum = array.Cast<int>().Sum();
如果数组包含整数数值,但你不知道它们的类型,你可以尝试这样的:
long sum = array.Cast<object>().Select(o => Convert.ToInt64(o)).Sum();