Если вызываемая сторону и вас устраивают пустые параметры в урле, то попробуйте так
string.Format(GetAQuoteLink, culture, centre?.Id ?? string.Empty, location)
А если при пустом centre надо именно скипнуть параметр, то я бы переписал следующим образом:
- собираем все параметры в словарик string, string
- делаем Select() в строку вида "key=value"
- делаем string.Join() с правильным разделителем (&)
- если строка не пуста, то через ? конкатенируем с урлом
P.S. есть смысл для такого рассмотреть библиотеку готовую, в Asp.Net Core например QueryString из коробки умеет то что нужно.