А при чём тут C#?
Если вопрос о том, что значит конструкция {condition} ? {expr1] : {expr2}.
То это тернарный оператор. Если выражение {condition} истинно, то всё выражение будет равно {expr1} иначе {expr2}
Конкретно это:
first = (total != 0 ? total : first);
Будет значить "Присвоить переменной first значение total, если total != 0 иначе присвоить ей значение first (оставить как есть)".
Как мне кажется, код этот плохой и было бы лучше написать так:
if (total != 0) {
first = total;
}
Следующая строка ещё хуже.