I suppose answer is trivial:
List<int?> intList = new List<int?>(){null, null, null};
int? sum = list.Sum();
int sum2 = list.Sum(a => a.HasValue ? a.Value : 0);
int sum3 = list.Sum().Value;
Sum is always returning 0, why is nullable needed at all? Is there a way to force linq sum to return null? What am I missing here?