через разделитель, но некоторые из них пустые.
Какой самый оптимальный вариант?
Сейчас так:
names = { NamePrefix, GivenName, MiddleName, FamilyName, NameSuffix };
displayName = string.Join(' ', names.Where(a => !string.IsNullOrWhiteSpace(a)));
Норм
а нужно - отлично
Учитывая уровень вопроса этот вариант отличный
что значит уровень вопроса? есть реальная задача, интересно как ее наиболее правильно решить
нормальное решение у тебя в чем вопрос то
а нужно - отлично!!!!!!!!!
ну в том, что Join - внутри цикл, where - цикл. И сложность выходит большая
а теперь вопрос на засыпку
правильно - это так, чтобы работало, чтобы количество усилий было затрачено оптимальное и чтобы производительность была удовлетворительной, все остальное блажь. если бы тебе нужно было байтоебство и наносекунды ты бы уже знал правильное решение без вопросов
NamePrefix и т.д. - это свойство класса, Нужно еще одно свойство которое отдает полное имя
StringBuilder + куча if, либо интерполяция + куча тернарок, либо экстеншен для стринг билдера AddIfNotEmptyOrWhitespace
целый билдер чтобы склеить три строки
да хз, просто адекватнее смотреться будет наверное, тут паттерн билдер так и просится, есть параметры, некоторые из них отсутствуют(пустые)
можно еще паттерн фабрику ебануть сюда
вообще кайф будет)
вообще я думал для стринг такой экстеншен
AppendIfNotEmptyOrWhitespace? звучит энтерпрайзно, но раз уж у тебя все равно куча аллокаций и ты будешь этот экстеншн наверняка только в одном месте юзать то лучше уж ифов накидать
А чо, пошли делать PR
Сделай жирную либу
Обсуждают сегодня