I need to add numerous variables of type nullable int. I used the null coalescing operator to get it down to one variable per line, but I have a feeling there is a more conc
If all numbers in the array are null I would expect the total to be null.
// E.g.
int? added = null, updated = null, deleted = null;
...
int? total = added + updated + deleted; // null i.e. nothing has been done.
Test Cases
Sum(new int?[] { null, null}).Dump(); // null
Sum(new int?[] { 1, null}).Dump(); // 1
Sum(new int?[] { null, 2}).Dump(); // 2
Sum(new int?[] { 1, 2}).Dump(); // 3
Sample Implementation
int? Sum(int?[] numbers)
{
int? total = null;
for (int i = 0; i < numbers.Length; i++)
{
int? item = numbers[i];
if (item != null)
{
if (total == null)
{
total = item;
}
else
{
total += item;
}
}
}
return total;
}