次の場合のコンパイラの効率に興味があります。
double total = list.Sum(x => x.Value) ?? 0;
Q:コンパイラはSum関数を1回または2回実行するコードを生成しますか?
次のようなものが生成される可能性があります。
double total = list.Sum(x => x.Value) == null ? 0 : (double)list.Sum(x => x.Value);
また
double temp = list.Sum(x => x.Value);
total = temp == null ? 0 : (double)temp;