Не обращаясь непосредственно к ФП, это также относится к названию вопроса.
Мне часто нужно форматировать строки с каким-то пользовательским модулем, но в тех случаях, когда у меня нет данных, я вообще не хочу ничего выводить. Я использую это с различными обнуляемыми типами:
/// <summary>
/// Like String.Format, but if any parameter is null, the nullOutput string is returned.
/// </summary>
public static string StringFormatNull(string format, string nullOutput, params object[] args)
{
return args.Any(o => o == null) ? nullOutput : String.Format(format, args);
}
Например, если я форматирую температуру, например, «20 ° C», но встречаю нулевое значение, вместо «° C» будет напечатана альтернативная строка.
double? temp1 = 20.0;
double? temp2 = null;
string out1 = StringFormatNull("{0}°C", "N/A", temp1); // "20°C"
string out2 = StringFormatNull("{0}°C", "N/A", temp2); // "N/A"