Как и другие, вам нужно привести короткие объекты к типу, который поддерживается методом Enumerable.Sum . К сожалению, нет перегруженного метода Sum для некоторых типов, таких как ulong и т. Д.
Если вы будете нуждаться в этом очень часто, я бы порекомендовал написать метод расширения самостоятельно, вот один, который я сделал некоторое время назад для ulong и ulong ?, вы можете сделать что-то очень похожее для коротких или любых других типов. вам нужно:
public static ulong Sum(this IEnumerable<ulong> source)
{
var sum = 0UL;
foreach (var number in source)
{
sum += number;
}
return sum;
}
public static ulong? Sum(this IEnumerable<ulong?> source)
{
var sum = 0UL;
foreach (var nullable in source)
{
if (nullable.HasValue)
{
sum += nullable.GetValueOrDefault();
}
}
return sum;
}
P.S. мои реализации основаны на реализации Enumerable.Sum после того, как я просто из любопытства взглянул на рефлектор: -P