Не бойтесь использовать локальные переменные. Разница в использовании памяти и производительности очень мала, а в некоторых случаях вообще отсутствует.
В вашем конкретном случае локальные переменные могут использовать 8 байт (16 байт в 64-битном приложении) стекового пространства. Однако компилятор может создавать локальные переменные самостоятельно, если это необходимо для временного хранения, поэтому возможно, что обе версии в любом случае имеют одинаковый набор локальных переменных.
Кроме того, компилятор может использовать регистры процессора вместо стекового пространства для некоторых локальных переменных, так что даже нет уверенности в том, что при создании локальной переменной фактически используется любое пространство стека.
Выделение стекового пространства в любом случае очень дешево. Когда метод вызывается, для локальных данных в методе создается кадр стека. Если будет выделено больше памяти, это только изменит то, насколько сильно перемещен указатель стека, это вообще не даст никакого дополнительного кода.
Итак, просто напишите код, чтобы он был удобен в обслуживании и надежен, и доверьте компилятору оптимизацию использования переменных.